首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"Object reference not set to an object instance“on predicate

"Object reference not set to an object instance“on predicate
EN

Stack Overflow用户
提问于 2019-08-13 23:52:41
回答 1查看 308关注 0票数 0

我正在尝试查找具有或包含某些内容的字段的客户端。如果我硬编码谓词,一切都会正常,但当我传递谓词时,它会抛出一个NullReferenceException

回购代码:

代码语言:javascript
复制
public IEnumerable<Contractor> Find(Func<Contractor, bool> predicate)
{
    var test = db.Contractors.Where(x => x.NIP.Contains("7822574676")).ToList(); //this is correct
    try
    {
        return db.Contractors.Where(predicate).ToList(); // this gives exception
    }
    catch (Exception ex)
    {
        return null;
    }  
}

服务代码:

代码语言:javascript
复制
public IEnumerable<ContractorShortDataDTO> FindByNIP(string NIP)
{
    try {
        return Database.Contractors.Find(x => x.NIP.Contains(NIP)).Select(x =>
            new ContractorShortDataDTO()
            {
                NIP = x.NIP,
                CompanyName = x.CompanyName,
                ID = x.ID
            }).AsEnumerable();
    } catch(Exception ex) {
            return null;
    }
}

这段代码有什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-13 23:58:29

将方法中的参数类型从

代码语言:javascript
复制
Func<Contractor, bool> predicate

代码语言:javascript
复制
Expression<Func<Contractor, bool>> predicate

另请参阅相关问题Why would you use Expression rather than Func?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57481363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档