linq查询一对一

dat*_*est 7 c# linq linq-to-sql

试图获取音乐会的名称,日期和地点(存储在另一张桌子上),但它似乎没有工作,但它不断拉回null.

var test = from f in db.Concert
           where f.Name.StartsWith(concertName)
           select new
           {
               f.Name,
               f.StartDateTime,
               venues = from v in db.Venues
                        where v.ID == f.VenueID
                        select v.Address
           }
Run Code Online (Sandbox Code Playgroud)

编辑:

Venue和Concert之间的关系是Concert有一个与Venue ID相关的VenueID.我需要传回一个字符串.就像是

foreach (var e in test)
{
   html += "<div> e.Name +":" + e.Address </div>;
}
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 13

您可以使用群组加入来获取与Concert相关的所有场地

var test = from f in db.Concert
           join v in db.Venues on f.VenueID equals v.ID into g
           where f.Name.StartsWith(concertName)
           select new
           {
               f.Name,
               f.StartDateTime,
               Venues = g.Select(x => x.Address)
           };
Run Code Online (Sandbox Code Playgroud)

使用结果:

foreach (var e in test)
{
   // e.Name
   // e.StartDateTime

   foreach(var address in e.Venues)
      // address
}
Run Code Online (Sandbox Code Playgroud)