的一種方式,它可以被標記爲硬盤的方式,就是要建立起自己的聯接使用LINQ的擴展方法的組合。這樣你可以遍歷你的集合(表),並添加任何必要的。
舉例來說,這樣的:
from t1 in Table1
join t2 in Table2 on t1.ID equals t2.ID
join t3 in Table3 on t2.ID equals t3.ID
select new { t1, t2, t3 }
可以重寫(易用做LinqPad):
var query = Table1
.Join (
Table2,
t1 => t1.ID,
t2 => t2.ID,
(t1, t2) => new { t1 = t1, t2 = t2 }
)
.Join (
Table3,
temp0 => temp0.t2.ID,
t3 => t3.ID,
(temp0, t3) => new { t1 = temp0.t1, t2 = temp0.t2, t3 = t3 }
)
;
這可以分割的,我想你可以做這項工作,同時循環(您的t1/t2/t3):
var query1 = Table1
.Join (
Table2,
t1 => t1.ID,
t2 => t2.ID,
(t1, t2) => new { t1 = t1, t2 = t2 }
);
var query2 = query1
.Join (
Table3,
temp0 => temp0.t2.ID,
t3 => t3.ID,
(temp0, t3) => new { t1 = temp0.t1, t2 = temp0.t2, t3 = t3 }
);
不是一個完整的解決方案,但它的思想是我正在解釋。
因此,而不是'硬編碼'查詢1,查詢2等,你可以做同樣的循環一組集合。
聽起來很難,我相信它會成爲的。
***我的表的數目是不固定的***:那是什麼意思?請解釋你的應用程序多一點,你最終需要什麼,因爲它感覺像LINQ可能不是正確的答案。 – 2013-03-07 11:48:13
是這個實體框架? – 2013-03-07 11:49:17
我想說的是我有返回多個表的代碼 – Rohit 2013-03-07 11:50:15