有 3 个表(2 个带有数据,3 个用于多对多关系)。
您需要从这些表中选择所有数据。
这就是我的查询的样子
SELECT lt."id" lt_id, lt."name" lt_name, rt."id" rt_id, rt."name" rt_name FROM "middle_table" mt
FULL JOIN "left_table" lt ON lt."id" = mt."lt_id"
FULL JOIN "right_table" rt ON rt."id" = mt."rt_id";
如何为此查询设计 LINQ 以与 EF Core 一起使用?
升级版:
我试图通过 SQL 来做到这一点
ctx.MiddleTable.FromSql(...)
它没有成功。我得到的列是空的,因为关系的表有一个来自左右表标识符的复合键。如果我在 FromSql() 之后添加怎么办
.Select(x => new MiddleTable { LeftTable = x.LeftTable, RightTable = x.RightTable})
然后查询更改为常规 JOIN,我只得到 MiddleTable 表中实际存在的那些记录。