IHAC在可能的情況下優先考慮實體框架,現有的數據庫(因此更改模式已不存在問題)。我試圖得到一個給定一個ID的唯一E元素列表。我是MS Entities的新手,並不是我將如何處理它(我認爲對於這個小組正在做的一些複雜的事情,他們比冰上的鼻涕還要慢),但是這是我交給我的。實體框架 - 1到...多到1選擇
下面是一個quickie圖: 這不是我的數據庫設計!別開槍提問:)
這裏的SQL我會寫:
SELECT E.e_Id, E.e_Name
FROM
A,
B,
C,
D,
E
WHERE
A.a_Id = 'someid'
AND A.a_Id = B.a_Id
AND B.b_Id = C.b_Id
AND C.d_Id = D.d_Id
AND D.e_Id = E.e_Id
GROUP BY E.e_Id, E.e_Name
逐步,我可以得到表d實體,但我無法弄清楚如何獲得E實體:
var bLocal = context.AEntities
.Where(a => a.a_Id == 'someid')
.Select(b => b.B);
var dLocal = bLocal
.SelectMany(b => b.D);
var eLocal = dLocal. ????
- OR? -
var eLocal = context.EEntities ???
您可以使用查詢語法在linq中的一個語句中執行多個froms。 '從table1中的t1到表2中的t2'等。 – Silvermind
@Silvermind,他只是使用舊式SQL89格式化他的SQL連接而不是內部連接(SQL92),而不是創建笛卡爾積。 – paqogomez
@rcarver,我的答案工作?你還有其他問題嗎? – paqogomez