Запрос M: M отношений с использованием Entity Framework - PullRequest
1 голос
/ 05 октября 2011

Как мне изменить следующий код:

    var result = from p in Cache.Model.Products
                 from f in p.Flavours
                 where f.FlavourID == "012541-5-5-5-651"
                 select p;

Так что f.FlavourID предоставляется диапазон идентификаторов, как предполагается, только одно значение, как показано в приведенном выше примере?

Учитывая следующую модель ERD:

Продукты * => Комбинации продуктов <= * Ароматы </p>

ProdCombination - это таблица соединений / соединений, в которой просто есть один составной ключ.

1 Ответ

2 голосов
/ 05 октября 2011

верхней части моей головы

string [] ids = new[]{"012541-5-5-5-651", "012541-5-5-5-652", "012541-5-5-5-653"};

var result = from p in Cache.Model.Products
                 from f in p.Flavours
                 where ids.Contains(f.FlavourID)
                 select p;

Есть некоторые ограничения, но у меня раньше работал массив идентификаторов. Я только пробовал с бэкэндом SQL Server, и мои идентификаторы были целыми числами.

Насколько я понимаю, Linq нужно перевести ваш запрос в SQL, и это возможно только иногда. Например, это невозможно с IEnumerable<SomeClass>, который выдает ошибку времени выполнения, но возможно с набором простых типов.

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