используя sql в операторе Linq - PullRequest
0 голосов
/ 16 июля 2011

как мне смоделировать следующий SQL-запрос, используя linq

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

обратите внимание, что Resource и Category имеют отношение «многие ко многим», а ResourceRelCategory является таблицей ассоциации между ними. спасибо

Ответы [ 2 ]

2 голосов
/ 16 июля 2011

Вы можете попробовать что-то вроде:

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 голосов
/ 27 февраля 2012

См. Статью об этом здесь, я уже писал о том же на http://www.codeproject.com/Tips/336253/Filtering-records-from-List-based-similar-to-Sql-I

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...