【发布时间】:2013-02-20 10:26:07
【问题描述】:
我有一个简单的 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 表2
表3 表2
表4 > 表2
如何在 Table2 上编写一个关系,该关系将在两个给定列上加入 Table3?
我认为这是朝着正确方向迈出的一步(在 Table1 中定义):
this.HasMany(e => e.Table2)
.WithOptional(e => e.Table1)
.HasForeignKey(tlb2 => tbl2.Column)
但由于无法将 Table1 中的列与 Table2 中的列关联,所以我走到了死胡同。谢谢!
【问题讨论】:
-
你已经拥有实体了吗?
-
是的。它可能会提到我使用的是 Code First 方法,因此没有 EDMX 来设置关联或类似性质的东西。
-
我觉得如果你能把真实的实体贴在这里让我们看到实际情况就好了。
标签: c# .net entity-framework ef-code-first