Запрос Linq с несколькими Contains / Any для RavenDB

У меня есть класс документа, содержащий список «тегов». Что-то вроде:

class Item {
  string Name { get; set; }
  List<string> Tags {get; set;}
}

Теперь я хотел бы создать запрос для RavenDB, который передает мне все элементы, отфильтрованные по списку тегов. При использовании Entity Framework мне удалось сделать это примерно так:

var query = GetQueryable();
foreach (var tag in tags)
{
   query = query.Where(i => i.Tags.Contains(tag));
}

Однако, похоже, это не работает с RavenDB, скорее всего потому, что Contains не поддерживается .. Я также пытался переписать его с помощью Any, ( Где (i => i.Tags.Any (t => t == tag)) ), но это дает мне странное исключение:

Unable to cast object of type
'System.Linq.Expressions.PrimitiveParameterExpression`1[System.String]'
to type 'System.Linq.Expressions.MemberExpression

Есть какие-нибудь отличные идеи? Я делаю это совершенно неправильно?

17
задан CodingInsomnia 17 November 2010 в 18:30
поделиться