我有四张桌子:
客户可能有零或n个目的地。目的地有n个DestinationDetails,每个DestinationDetail都有一种语言。
确定。我需要检索给定客户端和给定语言的所有DestinationDetails。
我写了这个(如果它有效,我不知道),但也许有更好的方法:
ObjectQuery clientQuery =
guiaContext.Client.Where("it.email = @email",
new ObjectParameter("email", "xxx@example.com"));
Client client = clientQuery.First();
client.Destination.Load();
EntityCollection destinations = client.Destination;
ObjectQuery languageQuery =
guiaContext.Language.Where("it.ds_language = @languageDS",
new ObjectParameter("languageDS", "en-US"));
Language language = languageQuery.First();
foreach (Destination dest in destinations)
{
dest.DestinationDetail.Load();
EntityCollection details = dest.DestinationDetail;
foreach (DestinationDetail detail in details)
{
detail.Language = language;
Console.WriteLine("Destination: " + detail.ds_destinationName);
}
}
我正在学习ADO.NET实体框架。
谢谢!
答案 0 :(得分:0)
这就是答案:
var db = new PracticeEntities();
var destinations = db.DestinationDetails.
Where(dd => dd.Language.Lang == "en-US" &&
dd.Destination.Client.Any(c => c.Email == "abc@yahoo.com"));
谢谢!