【发布时间】:2020-01-03 01:24:22
【问题描述】:
我正在尝试创建一个 EF 通用存储库,但是当将具有 Func where 的变量作为参数传递给方法时,不会生成 where 子句。
例子:
这会生成 SQL where 子句
var data = dbSet.Where((m => (m.Field != null && m.Field.Contains(searchValue))));
这不是:
var whereClause = (m => (m.Field != null && m.Field.Contains(searchValue)));
var data = dbSet.Where(whereClause);
【问题讨论】:
-
var whereClause = ...无法编译。无论如何,请确保使用Expression<Func<...>>参数,例如Queryable方法,而不是匹配Enumerable方法的Func<…>,因此不会被转换为SQL 并将在内存中执行。
标签: c# .net asp.net-core entity-framework-core