2
我移植一些SQL存儲過程的邏輯,這將返回多個表中的數據集,對實體框架的強類型對象,使用LINQ查詢。選擇性LINQ的孩子包括兩層深
基本上我需要來自表A,B和C的數據,其中C有一個外鍵給B,而B有一個外鍵給A.但我不希望每個C都帶有一個FK到B,只是C'S具有一定的約束X.
所以基本上,存儲的過程基本上可以說
TableA = select from A where A.AID = AIDPassedIn
TableB = select from B where B.AID = AIDPassedIn
TableC = select from TableB where TableB.XID = XIDPassedIn
return new DataSet(TableA, TableB, TableC);
//yes this is gross and confusing, thus our current efforts
實體框架幾乎使這個超級簡單,像這樣
A.Include("B.C").Where(a => a.AID == AIDPassedIn)
我唯一的問題是這不包括C表上的約束X.我讀過一大堆文章,但是我讀過的所有東西都提示了我可以添加到where子句中的東西,並且這將過濾我最終得到的A對象。不管它的孩子的屬性如何,我只能得到一個A對象。我想要的是A與AIDPassedIn,所有它的孩子B和所有B的孩子C匹配約束X.
我覺得這是我有史以來最糟糕的短語之一,但我有點一個塊。任何幫助將非常感謝!
哇!我插入了A B和C的所有表名,並且它在第一次就像魔術一樣工作!這正是我需要的!非常感謝你的簡單明確的答案! – GimpCoder 2013-04-10 20:44:26