«Где нет» в LINQ to EF4 - PullRequest
0 голосов
/ 27 июня 2011

Существует ли прямой перевод между этим оператором SQL и LINQ?

Select ProductId 
From ProductReport
Where ProductId NOT IN(Select ProductId From ClientProduct Where ClientId = CAST('06ae6be1-ca94-44c9-bd30-f1d4f3ac3264' AS uniqueidentifier))

Я могу добиться того же с помощью двух запросов LINQ, но я бы предпочел использовать один запрос и один раз обратиться к базе данных.

Ответы [ 2 ]

2 голосов
/ 27 июня 2011

Предположим, у вас есть навигация в вашей модели - , и вы должны .

var clientId = new Guid("06ae6be1-ca94-44c9-bd30-f1d4f3ac3264");
var q = from pr in Context.ProductReports
        where !pr.Clients.Any(c => c.ClientId == clientId)
        select pr.ProductId;
2 голосов
/ 27 июня 2011
var q = from p in ProductReport
        where !ClientProduct.Any(c => 
           c.ClientId == new Guid("06ae6be1-ca94-44c9-bd30-f1d4f3ac3264") && 
           p.ProductId == c.ProductId)
        select p.ProductId;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...