Я думаю о разработке механизма бизнес-правил, который в основном генерирует EF-запрос из набора значений строк, хранящихся в базе данных.Dynamic EF Query
См., Например, Я буду хранить строку подключения, имя таблицы, предикат условия и выбрать предикат как строковые поля в db и хотел бы построить запрос EF динамически. Напр.
var db = new DbContext(“connectionstring”);
var wherePredicate = Expression.FromString(“p => p.StartDate > new DateTime(2014,5,1))
var selectPredicate = Expression.FromString(“p => p”)
var results = db.Set(“Projects”).Where(wherepredicate).Select(selectPredicate)
Для построения предикатов я могу использовать DynamicExpression или Dynamic LINQ library.
Как я могу получить доступ к db.Set («Projects»), где Projects - это имя объекта, и применять предикаты where и select? (или что-то вроде db[“Projects”].Where().Select
).
Я пробовал не общую версию метода DbContext.Set(Type entityttype)
, но не смог выяснить, как применять Where
и Select
предикаты к возвращенному объекту.
Я пытаюсь избежать генерации SQL-запросов и вместо этого полагаться на динамически генерируемый EF-код.
Похоже, вы потеряете все преимущества сущности-рамки. – Aducci