Каковы возможные способы динамического создания выражения LINQ, , но с использованием синтаксиса запроса ?Является ли синтаксис запроса только C #, и если это так, является ли единственным жизнеспособным способом создания таких выражений с помощью динамической компиляции Roslyn?
При написании выражений LINQ вручную, я считаю их более естественными при написании с использованием синтаксиса цепочки методовНапример, ctx.Foo.Where(foo => foo.Type.Name == "Bar")
, но в некоторых случаях мне нужно было бы написать их следующим образом:
from foo in ctx.Foo
join fooType in ctx.Types on foo.TypeId equals fooType.Id
where fooType.Name == "Bar"
Мне нравится, как деревья выражений обеспечивают безопасность типов при динамическом создании выражений, но как можно создавать выражения, используясинтаксис запроса?