Я пытаюсь понять, как использовать любой оператор Linq.Dynamic, вот мой тестовый код:Динамические Linq Любой синтаксис
var bar = new[] {
new {Bar = "A", Id = 1},
new {Bar = "B", Id = 1},
new {Bar = "C", Id = 2},
new {Bar = "A", Id = 2},
new {Bar = "B", Id = 3},
new {Bar = "C", Id = 3}
};
var foo = new[] {
new {Foo = 1, Id = 1},
new {Foo = 1, Id = 1},
new {Foo = 2, Id = 2},
new {Foo = 2, Id = 2},
new {Foo = 2, Id = 3},
new {Foo = 3, Id = 3}
};
var res = foo.GroupJoin(bar, x => x.Id, y => y.Id, (x, l) => new { F = x.Foo, Bs = l.Select(b => b.Bar).ToArray() }).ToArray();
var normalLinq = res.Where(x => x.Bs.Any(y => y == "A")).ToArray();
var dynamicLinq = res.AsQueryable().Where("Bs.Any(x => x==\"A\")").ToArray(); //won't work
Синтаксис "Bs.Any(x => x==\"A\")"
неправильно как динамические LINQ, кажется, не знают, выражение lambda, которое я вставляю, и исключение выбрано. Как мне заставить работать?
Моя цель - проанализировать динамический поиск с помощью этого кода. Если у вас у Linq есть другие способы улучшить динамический поиск, пожалуйста, предложите?
спасибо, и, кстати, я понял, что мне нужно реализовать функцию Contains(), чтобы делать то, что я хотел. – Tom