Linq使用实体框架进行多对多查询

杰西卡(Jessica)

我有两个表:tbAtbB。在它们之间,我具有n到n的关系,因此tbAB在数据库中生成了一个表我先使用一个Entity Framework数据库,然后在映射这些表时,它不会为生成特定的实体tbAB因此,如果我不能直接调用,我将看不到如何创建与两个表相关的查询tbAB我想在SQL中做的事情如下:

 SELECT * 
 FROM tbA
 INNER JOIN tbAB 
 ON tbAB.idA = tbA.idA
 INNER JOIN tbB
 ON tbB.idB = tbAB.idB

这就是我要对Linq进行的操作:

  var table = (from l in db.tbA
                                            join k in db.tbB on l.? equals k.?
                                            where ?.IDCONCESSAO == objectTbB.IDCONCESSAO
                                            select l).ToList();

问题是如何在Linq表达式中执行此操作?

提前致谢。

八叶球菌

按照@Michal提出的模型,您可以执行以下操作:

var query= from a in db.TableAs
           from b in a.TableBs
           where b.Id==10
           select new{A_Id=a.Id,a.Name, B_Id=b.Id,b.Price,...};

在中,select您可以从两个实体中选择所需的属性(我也选择一个NamefromTableA和一个PricefromTableB以帮助您更好地理解此示例)。从关系的每个方向,您都不会与联结表进行交互,而只是遵循每个方向的关系,就好像一对多。我上面显示的查询将转换为sql查询,其中将以这种方式在表之间进行联接:

{SELECT 
[Extent1].[Id] AS [Id], 
[Extent1].[Name] AS [Name], 
[Join1].[Id] AS [Id1], 
[Join1].[Price] AS [Price]
FROM  [dbo].[TableAs] AS [Extent1]
INNER JOIN  (SELECT [Extent2].[TableA_Id] AS [TableA_Id], [Extent3].[Id] AS [Id], [Extent3].[Price] AS [Price]
    FROM  [dbo].[TableBTableAs] AS [Extent2]
    INNER JOIN [dbo].[TableBs] AS [Extent3] ON [Extent3].[Id] = [Extent2].[TableB_Id] ) AS [Join1] ON [Extent1].[Id] = [Join1].[TableA_Id]
WHERE 10 = [Join1].[Id]}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实体框架(代码优先)多对多LINQ查询格式

来自分类Dev

如何使用实体框架查询多对多实体

来自分类Dev

实体框架代码首先使用附加键进行多对多

来自分类Dev

实体框架核心中的 Linq 多对多

来自分类Dev

实体框架7中的多对多查询

来自分类Dev

正确的Linq查询使用代码优先实体框架生成的具有多对多关系的对象

来自分类Dev

实体框架 - 多对多

来自分类Dev

如何使用实体框架查询多对多关系

来自分类Dev

实体框架LINQ多列计数(不同)

来自分类Dev

实体框架 - LINQ 表达式映射多对多

来自分类Dev

实体框架:做多对多查询的更好方法?

来自分类Dev

删除多对多实体框架

来自分类Dev

实体框架多对多映射

来自分类Dev

实体框架多对多更新

来自分类Dev

实体框架多对多搜索

来自分类Dev

实体框架 6 多对多

来自分类Dev

Linq多对多查询

来自分类Dev

Linq多对多查询

来自分类Dev

使用LINQ进行多对多数据库查询

来自分类Dev

进行多对多查询

来自分类Dev

使用实体框架优化LINQ查询

来自分类Dev

使用实体框架优化LINQ查询

来自分类Dev

LINQ使用实体框架进行快速加载

来自分类Dev

在实体框架中使用流畅映射进行一对多

来自分类Dev

如何查询与实体框架的多对多关系6

来自分类Dev

查询多对多关系实体框架(做错了??)

来自分类Dev

实体框架数据库多对多

来自分类Dev

实体框架多对多继承例外

来自分类Dev

实体框架多对多列概念