Может кто-нибудь помочь мне со следующим? Я использую Linq для сущностей (сначала код).
У меня есть объект Products, который сопоставлен (от 1 до многих) в моем контексте БД с моим объектом ProductAreas.
Этот запрос работает и возвращает мне список включенных продуктов, включая связанные с ними области:
IQueryable<Product> products = from Product in db.Product.Include(p=>p.ProductAreas)
where (Product.BrandId == brandid && Product.Enabled == true)
select Product;
Я хочу добавить фильтр, чтобы я также только возвращал ProductAreas, которые включены.
Это то, что я изначально пробовал:
IQueryable<Product> products = from Product in db.Product.Include(p=>p.ProductAreas.Where(pa=>pa.Enabled == true))
where (Product.BrandId == brandid && Product.Enabled == true)
но когда я запускаю свой код, я получаю следующую ошибку: "Выражение« Включить путь »должно относиться к свойству навигации, определенному для типа. Используйте пунктирные пути для ссылочных свойств навигации и оператор« Выбор »для свойств навигации коллекции.
Имя параметра: путь "
Полагаю, я хочу добавить фильтр в мой каталог где-нибудь? Я пробовал это, но это только возвращает мне продукты, которые имеют области (и все еще возвращают ProductAreas, которые не включены)
IQueryable<Product> products = from Product in db.Product.Include(p=>p.ProductAreas)
where (Product.BrandId == brandid && Product.Enabled == true && Product.ProductAreas.FirstOrDefault(a=>a.Enabled == true) != null)
select Product;
Любая помощь очень сильно оценена (как вы, вероятно, можете сказать, я только изучаю Linq to Entities !!)