c# - EF Core stored where Func does not generate SQL where clause
问题描述
I'm trying to make an EF generic repository, but when pass as parameter to a method a variable with Func where, does not generate the where clause.
Examble:
This generate SQL where clause
var data = dbSet.Where((m => (m.Field != null && m.Field.Contains(searchValue))));
This not:
var whereClause = (m => (m.Field != null && m.Field.Contains(searchValue)));
var data = dbSet.Where(whereClause);
解决方案
As @Ivan Stoev told us, this not compile : var whereClause = ...
but you can do something like this :
var data = FindEntity((m => (m.Field != null && m.Field.Contains(searchValue))));
//T is your dbSet Data type
private IEnumerable<T> FindEntity(Expression<Func<T, bool>> whereClause)
{
return dbset.Where(whereClause)
.AsEnumerable();
}
推荐阅读
- python - 如何在列表中打印带有方括号的列表元素 - Python I
- c - 为什么地址有差异但仍然指向相同的数据?
- azure - Microsft Graph API 作为 WEB API 应用程序
- c++ - C++ 正则表达式搜索特定的中文模式
- laravel - 可搜索的 Laravel Yajra 数据表不适用于欲望列
- python - heroku 上的空数据框但不是本地的
- java - Java:循环中的 String.replaceAll() 与 matcher.replaceAll()
- sql-server - 替代 SQL Server 链接服务器
- python - Open Data Cube:无法连接到 opendatacube Conda 环境中的数据库
- python - 提高从函数创建多维数组的效率