【发布时间】:2009-03-20 05:48:00
【问题描述】:
我有四张桌子:
- 具有 PK ClientID 的客户端。
- 带有 PK DestinationID 的目标。
- 带有 PK LanguageID 的语言。
- 带有PK DestinationID的DestinationDetail。
- 带有 PK ClientID 和 DestinationID 的 RL-Client-Destination。
客户端可能有零个或 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 实体框架。
谢谢!
【问题讨论】:
标签: c# entity-framework ado.net