Не содержится в дочернем списке в RavenDB

#c# #ravendb

#c# #ravendb

Вопрос:

У меня есть сущность.

 class Something{
   public List<string> Tags {get;set;}
}
  

Теперь мне нужно запросить все объекты, у которых нет указанного тега.

 var res = s.Query<Something>()            
           .Where(x => !x.Tags.Any(t => t == "Test3"));
  

Сбой с:

Необработанное исключение: Система.Исключение InvalidCastException: невозможно привести объект типа ‘System.Linq.Выражения.MethodCallExpressionN’для ввода’System.Linq.Выражения.MemberExpression’.

Обычный запрос также не работает:

 var res = s.Advanced.LuceneQuery<Something>()
           .Where("-Tags:Test3");
  

… это просто ничего не возвращает.

Как написать такой запрос?

Ответ №1:

Вы можете использовать метод расширения In, который также будет работать с a !

Ответ №2:

Решение простое:

 var res = s.Advanced.LuceneQuery<Something>()
  .Where("Tags:(* -Test3)");
  

Комментарии:

1. есть ли способ сделать это без lucene?