我有一个简单的 SQL 查询,我试图将它与 Fluent API 和 Entity Framework 一起使用,但我对它进行了粗略的处理。这是查询:
SELECT
tbl1.Column,
tbl2.Column,
tbl3.Column,
tbl4.Column
FROM dbo.Table1 tbl1
INNER JOIN dbo.Table2 tbl2 ON tbl1.[Table 2 ID FK] = tbl2.ID
LEFT JOIN dbo.Table3 tbl3 ON tbl3.[NonKeyColumn] = tbl2.[NonKeyColumn]
LEFT JOIN dbo.Table4 tbl4 ON tbl4.[Table1FK] = tbl1.ID
我的问题是 Table2 和 Table3 的连接;这些列不是任一表的主键,并且在两个表中的命名完全不同。我的表之间的关系是这样的:
表 1 << M:1 > 表 2
表 3 << M:1 > 表 2
表 4 << M:M >> 表 2
如何在 Table2 上编写将在两个给定列上加入 Table3 的关系?
我认为这是朝着正确方向迈出的一步(在表 1 中定义):
this.HasMany(e => e.Table2)
.WithOptional(e => e.Table1)
.HasForeignKey(tlb2 => tbl2.Column)
但是我遇到了死胡同,因为我无法将 Table1 中的列与 Table2 中的列相关联。谢谢!