试图获取音乐会的名称、日期和地点(存储在另一个表中)但它似乎不工作,但它一直拉回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
}
编辑:Venue和Concert之间的关系是Concert有一个与VenueID相关的VenueID。我需要传回一个字符串。就像
foreach (var e in test)
{
html += "<div> e.Name +":" + e.Address </div>;
}
您可以使用group join来获取所有与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)
};
使用结果:
foreach (var e in test)
{
// e.Name
// e.StartDateTime
foreach(var address in e.Venues)
// address
}
假设Concerts和场馆之间是1:1的关系似乎是安全的。考虑到这一点,您可以使用join
代替。
var test = from f in db.Concert
join v in db.Venues on v.ID equals f.VenueID
where f.Name.StartsWith(concertName)
select new
{
f.Name,
f.StartDateTime,
v.Address
};
如果设置了外键关系,则不需要手动查询场馆。在这种情况下,您可以使用f.Venue
获得场地。