如何使用LINQ在操作使用SQL通過LINQ的
Select * From Resource Where Id in
(
Select ResourceId From ResourceRelCategory Where CategoryId =8
)
注意,資源和類別有多對多的關係,並ResourceRelCategory是它們之間的關聯表我模擬下面的SQL查詢。 感謝
如何使用LINQ在操作使用SQL通過LINQ的
Select * From Resource Where Id in
(
Select ResourceId From ResourceRelCategory Where CategoryId =8
)
注意,資源和類別有多對多的關係,並ResourceRelCategory是它們之間的關聯表我模擬下面的SQL查詢。 感謝
你可以嘗試這樣的:
var result = from r in Resource
where (
select c from ResourceRelCategory
where c.CategoryId==8
select c.ResourceId
).Contains(r.Id)
select r;
或
var result = from r in Resource
where r.Categories.Any(c => c.Id == 8)
select r;
或梅比周圍的其他方法:
Category.First(c => c.Id == 8).Resources
查看關於此文章在這裏 我有已在上發佈過大約相同的內容3210 http://www.codeproject.com/Tips/336253/Filtering-records-from-List-based-similar-to-Sql-I
問題是ResourceRelCategory不在映射文件中,因爲它只是一個關聯實體。 Model中只有Resource和Category實體。 –
@Vahid:爲什麼不只是添加它們?如果使用自動生成,則可以添加「虛擬列」,以便關係表獲取映射。 – ChrFin
我猜associatoin表不應該在類模型中。你怎麼看? –