Говоря о динамике для Entity Framework, часто есть 2 простых решения (одно бесплатное, одно платное).
Для обоих решений вам нужно будет создать строку, содержащую вашу динамическую проекцию.
Бесплатно
LINQ Dynamic: https://github.com/StefH/System.Linq.Dynamic.Core
Очень популярная библиотека, которая позволяет легко обрабатывать этот сценарий
var query = context.Customers.Where("City == @0", "London");
Я рекомендую эту библиотеку, если вы хотитеобрабатывать самые основные сценарии
Платные
Отказ от ответственности : я владелец проекта Eval-Expression.NET
Эта библиотека более мощная благодаря использованию дерева выражений.Он поддерживает тот же синтаксис, что и C #
var query = context.Customers.Where(c => "c.City < @0", "London");
var query = context.Customers.Where(c => "c.City < city", new { city = "London"});
var query = context.Customers.Where(c => "c.City < city", entityWithCityProperty);
Эта библиотека может использоваться для более сложных сценариев.Это позволяет вам компилировать и выполнять динамический код C # во время выполнения.