2011-07-16 78 views
0

如何使用LINQ在操作使用SQL通過LINQ的

Select * From Resource Where Id in 
(
Select ResourceId From ResourceRelCategory Where CategoryId =8 
) 

注意,資源和類別有多對多的關係,並ResourceRelCategory是它們之間的關聯表我模擬下面的SQL查詢。 感謝

回答

2

你可以嘗試這樣的:

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 
+0

問題是ResourceRelCategory不在映射文件中,因爲它只是一個關聯實體。 Model中只有Resource和Category實體。 –

+0

@Vahid:爲什麼不只是添加它們?如果使用自動生成,則可以添加「虛擬列」,以便關係表獲取映射。 – ChrFin

+0

我猜associatoin表不應該在類模型中。你怎麼看? –