使用实体框架(EF)执行存储过程会返回所有记录,即使我应用了分页、排序、筛选。
下面是代码。
var result = base.Context.proc_App_Contracts_All(Customer_No).AsQueryable()
.Where(filterExpression == null ? e => e.Contract_Number == e.Contract_Number : filterExpression)
.OrderBy(sortExpression)
.Skip((request.Page - 1) * request.PageSize)
.Take(request.PageSize)
.ToList());我认为原因是EF在应用程序级别(如果是存储过程)过滤记录,而不是在数据库级别,这就是为什么EF将所有记录提取到应用程序,然后应用排序和过滤等。
所以在这里,我想知道是否有任何方法可以执行存储过程,就像我们在EF中查询表或视图一样,这最终会对您的查询进行查询包装,或者我应该将存储过程转换为sql视图。
提前感谢
https://stackoverflow.com/questions/38387755
复制相似问题