c# - LinQ 到实体 : Query with four tables JOIN

标签 c# linq-to-entities

我有四张 table :

- Client with PK ClientID.
- Destination with PK DestinationID.
- Language with PK LanguageID.
- DestinationDetail with PK DestinationID.
- RL-Client-Destination with PKs ClientID and DestinationID.

客户端可能有零个或n个目的地。一个目的地有 n 个 DestinationDetails,每个 DestinationDetail 都有一种语言。

好的。我需要检索给定客户端和给定语言的所有 DestinationDetails。

我开始写这个:

try
   {
      ObjectQuery clientes = 
          guiaContext.Cliente;
      ObjectQuery destinos =
          guiaContext.Destino;
      ObjectQuery idiomas =
          guiaContext.Idioma;
      ObjectQuery detalles =
          guiaContext.DetalleDestino;

      IQueryable detalleQuery =
          from cliente in clientes
          from destino in destinos
          from idioma in idiomas
          from detalleDestino in detalles
          where destino.
          select detalleDestino;

   }
   catch
   {
   }
}

有什么建议吗?

谢谢!

最佳答案

其大致思路是:

var detalleQuery =
          from client in guiaContext.Clients
          where client.ID == 1
          from destination in cliente.Destinations
          from destinationDetail in destination.DestionationDetails
          where destinationDetail.Language.Iso2Code == "es"
          select destinationDetail;

关于c# - LinQ 到实体 : Query with four tables JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/668821/

相关文章:

javascript - 将列表分成div以一次只显示一个

c# - EF Core Sqlite 中的 Linq 查询不起作用

c# - 从 Entity Framework 中仅检索基类

asp.net-mvc - EntityFunctions.CreateDateTime 与实体的 linq 中的闰年问题

c# - UserManager.Create : An exception of type 'System.MissingMethodException' occurred in mscorlib. dll 但未在用户代码中处理

c# - 搜索 DataGridView,然后突出显示在其中找到值的单元格?

c# - 是否可以用 Linq 替换这个 foreach 循环?

c# - 在 ASP.NET Core Identity 中删除登录用户的策略

c# - 使用 LINQ-to-Entities 在选择父对象时对子对象进行排序

c# - 在 LINQ to Entities 中使用 DateTime