2013-10-02 354 views
0

這裏是SQL查詢,,,我有兩個tables, one is Categories and other Sub Categories ,,,我想用inner query(Category table) and that value pass to outer query(Sub categories table) 如何用lambda表達式將它轉換爲Entity框架..?使用Lambda語法將SQL子查詢轉換爲EF查詢

select * 
from DC_System_SubCategories 
where CatID = (select max(CatID) 
       from DC_System_Categories) 

回答

2

假設DCSystemSubcategoriesIEnumerable<DCSystemSubcategory>與適當的屬性,並DCSystemCategories是相關IEnumerable<DCSystemCategory>

var subcategoriesWithMaxCatId = DCSystemSubcategories 
          Where(x=>x.CatID == 
           DCSystemCategories.Max(sc=>sc.CatID)) 

但也有這取決於你如何填充DCSystemSubcategories穩定性方面的考慮,所以希望做一些其他的邏輯;同樣如果CatID可以重複,結果是非確定性的。

編輯:因爲Magnus在評論中指出了上級轉換。 並說明我們忽略的問題的細節...

+1

如果'CatId'不是唯一的,並且您想要所有匹配:'var q = DC_System_SubCategories.Where(x => x.CatID == DC_System_SubCategories .Max(p => p.CatID));' – Magnus

+0

這是一個更好的轉換....編輯。 –

+0

謝謝sir .............但是我想從Categories表中獲取Max id,然後將它傳遞給Subcategories表 –