试图获取音乐会名称,日期和地点(存储在另一张桌子上) 但它似乎没有起作用,但它一直在拉回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与Venue ID相关。我需要传回一个字符串。
之类的东西foreach (var e in test)
{
html += "<div> e.Name +":" + e.Address </div>;
}
答案 0 :(得分: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)
};
结果的使用:
foreach (var e in test)
{
// e.Name
// e.StartDateTime
foreach(var address in e.Venues)
// address
}
答案 1 :(得分:2)
在音乐会和场地之间假设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
};
答案 2 :(得分:0)
如果您设置了外键关系,则无需手动查询场地。在这种情况下,您可以使用f.Venue
获得场地。