【问题标题】:ADO.NET Entity Framework: QUERY n-n relationshipsADO.NET 实体框架:QUERY n-n 关系
【发布时间】: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


    【解决方案1】:

    这就是答案:

    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"));

    谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      • 2016-05-06
      • 2012-12-17
      • 2011-10-09
      • 1970-01-01
      • 2012-03-04
      相关资源
      最近更新 更多