首页 > 解决方案 > 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);

标签: c#.netasp.net-coreentity-framework-core

解决方案


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();
}

推荐阅读