#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?