我有一個微不足道的SQL查詢,我嘗試使用Fluent API和實體框架,但我有一個粗略的去。以下是查詢:創建不基於主鍵的流利關係
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
我的問題是表2和表3上的聯接;這些列不是任何一個表的主鍵,並且在兩個表中被命名爲完全不同。我的表之間的關係是這樣的:
表1 < < M:1>表2
表3 < < M:1>表2
表4 < < L:M >>表2
如何我可以在Table2上編寫一個關於兩個給定列加入Table3的關係嗎?
我認爲這是朝着正確方向邁出的一步(表1上定義):
this.HasMany(e => e.Table2)
.WithOptional(e => e.Table1)
.HasForeignKey(tlb2 => tbl2.Column)
但我打了一個死衚衕,因爲我不能在表1列到表2中的列關聯。謝謝!
你已經有實體嗎? – NunoCarmo 2013-03-05 22:10:20
是的。它可能會提到我使用的是代碼優先的方法,所以沒有EDMX來設置協會或這種性質的東西。 – dparsons 2013-03-06 02:00:54
我認爲如果你可以在這裏發佈真實的實體,以便我們可以看到實際的場景,那將會很好。 – 2013-03-06 03:38:38