Надявам се някой да може да ми помогне:
Използвам интерфейс за достъп до моите данни, методът Find е:
public IQueryable<T> Find<T>(Expression<Func<T, bool>> expression) where T : class, new()
{
return (IQueryable<T>) _db.GetCollection<T>(typeof(T).Name, WriteConcern.Acknowledged).AsQueryable().Where(expression);
}
Опитвам се да създам израз за извличане на всички ObjectIds в списък с ObjectIds.
нещо като: r => r.id.ContainsAny(List_Of_IDs); // където List_Of_IDs е от тип: List
Опитах също: r => r.id.ContainsAny(new[] {id1, id2, id3}) //където id1, id2, id3 са тип ObjectId
Но получавам грешка, че ContainsAny не поддържа този параметър.
Надявах се да дублирам функционалността на оператор IN в SQL. Моята цел е, че искам потребителската колекция да съдържа списък с продукти като списък с ObjectIds и след това искам да направя запитване до колекцията от продукти и да получа всички документи в списъка на потребителя с идентификатори на продукти.
Това възможно ли е? Някой знае ли какво правя погрешно?
Благодаря много за всяка помощ! Стив
BTW: тук изпращам израза към метода на хранилището:
public static List<product> getByIDlist(List<ObjectId> IDs)
{
return (List<product>)repo.Find<product>(r => r.id.ContainsAny(IDs));
}