当前位置:  开发笔记 > 编程语言 > 正文

实体框架IQueryable没有where子句

如何解决《实体框架IQueryable没有where子句》经验,为你挑选了1个好方法。

我有这些帮助方法:

public static IQueryable All(this IUnitOfWork unitOfWork)
    where T : class
{
    return unitOfWork.Context.Set();
}

public static T Find(this IUnitOfWork unitOfWork, Func predicate)
    where T : class
{
    return unitOfWork.All().FirstOrDefault(predicate);
}

当我打电话给第二个这样的时候:

var payment = _unitOfWork.Find
                          (p => p.PaymentAttemptRef == paymentAttemptRef 
                             && p.ContactType == type);

我希望谓词成为查询的一部分!! 但问题是生成的选择是没有where子句并且拉回表中的所有行.

知道为什么会这样吗?第二种方法调用第一种方法,返回一个iqueryable,所以我认为不会这样做?



1> SLaks..:

您需要更改扩展方法以Expression>使其可以转换为SQL.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有