【发布时间】:2021-08-19 10:11:48
【问题描述】:
当表名未知时,我正在尝试查询具有泛型类型的实体框架 where 子句语句。
我正在尝试使用动态 linq:
public static IEnumerable<T> wherePost<T>(this IEnumerable<T> source,
string predicate) where T : class
{
using (var context = new dbEntities())
{
string exp = predicate;//driverId>3
var p = Expression.Parameter(typeof(T));
var e = System.Linq.Dynamic.DynamicExpression.ParseLambda(new[] { p }, null, exp);
}
}
这是 wherePost 的调用示例
db.Drivers.wherePost("City == \"Paris\"");
不确定如何继续并使用DynamicExpression 从实体框架查询DbSet<T>。
【问题讨论】:
-
是未知的CLR实体类型吗?
-
它被称为我们传递它 =>this IEnumerable
源。 .我们需要使用 linq 将实体查询到仅在运行时才知道的表。
标签: c# entity-framework linq generics dynamic-linq