在SQL條件下,它會做這樣:的LINQ to SQL,在外國實體
SELECT * FROM Student
WHERE SchoolId IN
(SELECT id FROM School WHERE Name LIKE '%elementary%')
我如何使用LINQ實現這一點?我已經試過如下:
var list = context.Students.Where(x => context.Schools.Where(r => r.Name.Contains("elementary").Select(r => r.Id).Contains(x.SchoolId))
,但它不給我我想要的,可惜...
我知道這是可能首先從School
表中檢索所有Id
S,但我認爲它會對性能造成沉重的代價。最好我希望LINQ to SQL來處理所有事情;我不能用vanilla SQL來做這件事,因爲我需要動態的東西,而目前LINQ對我來說是最好的解決方案。
以上代碼僅供參考,我正在做的是有點不同(但差不多相同)。我真的需要一些幫助;如果您需要更多信息,請隨時提問。
編輯:我的不好,我錯過了一個領域。它的工作原理,但結果並沒有顯示出來,因爲我錯過了那場......那麼對不起...
「這不是給我我想要的東西」 - 你是什麼意思?正確的結果還是正確的SQL? –
恩,當我去調試並查看它在'IQueryable'中產生的查詢時,這是一個不行的事...與我在那裏寫的SQL完全不同。結果明智,我什麼也得不到。 – matt