Я EF newb и нуждаюсь в некоторой помощи в том, как запрашивать сущность через свойство навигации.Entity Framework Связь Запрос Confusion
Использование C# и LINQ методов Lambda только я использую, чтобы получить этот код:
List<PublisherImage> images = db.DataModel.PublisherImages.Include("Categories").Where(pi => pi.Enabled && pi.Rendered).OrderBy(pi => pi.ID).ToList();
Мне нужно, чтобы иметь возможность фильтровать этот объект список идентификаторов категорий, так что я получить издатель изображения этой категории. Используя приведенный выше пример, как мне сделать то, к чему я привык в SQL (инструкция IN)?
Может ли кто-нибудь показать мне пример с использованием методов C# LINQ Lambda, а не операторов LINQ?
Большое спасибо!
EDIT:
Вот лучший пример того, что я пытаюсь сделать:
string categoryIds = "1,2,3,4";
var ids = Array.ConvertAll(categoryIds.Split(','), int.Parse);
List<PublisherImage> images = db.DataModel.PublisherImages.Include("Categories").Where(pi => pi.Enabled && pi.Rendered && pi.Categories.Where(c => ids.Contains(c.ID)).Any()).OrderBy(pi => pi.ID).ToList();
Этот вопрос представляется неясным. Не могли бы вы предоставить немного больше информации о своей модели и значениях, которые вы пытаетесь фильтровать? Мне кажется, что вы можете сделать «.Where (pi => ids.Contains (pi.ID)), но я не знаю, как выглядят ваши объекты/отношения. – mtmurdock
Я просто добавил лучший пример кода. – Jared
Хорошо, этот код более ясен, но в чем проблема? Похоже, это будет делать то, что вы хотите. – mtmurdock