我需要1個表中的字段,而不是1個屬性匹配另一個表中的行。 我可以寫在SQL這個查詢與子查詢這樣:如何返回LINQ中依賴聯接/子查詢的表?
SELECT *
FROM Table1
WHERE Property1 IN
(
SELECT Property1
FROM Table2
WHERE Property0 = 1
)
但我讀here,它是那麼複雜,也很容易用一個連接來寫,我做到了。但是,到目前爲止,我無法僅返回Table1,因爲我使用了一個連接,如果我沒有弄錯,需要我創建這個匿名類型,如下所示。我在這裏所做的工作(我創建了另一個具有Table1相同屬性的對象),但我不禁想到有更好的方法來做到這一點。
Table1.Join(Table2, t1 => t1.Property1, t2 => t2.Property1, (t1, t2) => new
{
t1.Property1,
t1.Property2,
t1.Property3
})
.Select(ob => new UnnecessaryObject
{
Property1 = ob.Property1,
Property2 = ob.Property2,
Property3 = ob.Property3
}
我也試過只是創造的。選擇部分表1,但我沒有被允許大約明確建設一個錯誤。
只是爲了澄清,我希望能夠返回Table類型的IQueryable,它似乎我應該能夠做到而不必創建UnnecessaryObject ...但我仍然很新LINQ,所以我會很感激你能提供的任何幫助。提前致謝。
工作太棒了!非常感謝! – Andy 2010-07-14 14:09:11