对于使用实体框架的我的存储库,我使用以下方法返回IList。
public virtual IList<TEntity> ToList(Func<TEntity, bool> expression)
{
return Context.CreateQuery<TEntity>("[" + EntitySetName + "]")
.Where<TEntity>(expression).ToList();
}
表达式参数允许我改变结果,但这不符合我的期望。由于首先评估createquery
,然后应用我的where
。我用的是超过2密耳的桌子。记录。
是否有人有解决方法如何保持方法的通用性,但是如果不首先加载所有记录就能控制结果?
答案 0 :(得分:2)
您需要将参数类型更改为可转换为SQL的类型:
public virtual IList<TEntity> ToList(Expression<Func<TEntity, bool>> expression)
注意表达。