Учитывая очень простой string[]
, я пытаюсь выполнить следующее в простом синтаксисе LINQ с RavenDB
.
public class Item {
public string[] Tags { get; set; }
}
var list = new List<Item> {
new Item { Tags = new string[] { "one", "two", "three" } },
new Item { Tags = new string[] { "one", "two" } },
new Item { Tags = new string[] { "one" } }
};
И тогда я могу легко запросить это, вот так;
var items = session.Query<Item>().Search( n => n.Tags, "one" ).Take(3).ToList();
Это позволяет мне легко получить все элементы с тегом в их string[]
, которые я хочу, но я хочу сделать обратное (очевидно, для моего варианта использования сценарий намного сложнее, я сжимаю его для этого примера).
Я хочу написать запрос LINQ, который будет работать с Raven и даст мне все объекты, у которых нет заданного тега. Как «перевернутый» поиск.
Contains() был удален из RavenDB, поэтому я не могу использовать для него обратное логическое значение. До сих пор мне просто приходилось делать запрос, а затем использовать другую команду LINQ для результата, что я считаю крайне неэффективным. Кто-нибудь знает, как это сделать?
Я также публикую это в списке рассылки групп Google RavenDB.