-1

我正在使用 Sql server 2012,实体框架 5.0

表客户:Id ... NickName (nvarchar(100)) 可以为空

Customer ICustomer service:    Customer GetCustomer(Func<Customer, bool> pre);


public Customer GetCustomer(Func<Customer, bool> pre)
        {
            return _customerRepository.Table.Where(pre).FirstOrDefault();
        }

当我尝试获取数据时:

  var customer = _customerService.GetCustomer(c => c.Nickname.Equals("abc"));

它会产生一个错误:

异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。

当 NickName 有 NULL 数据时

4

2 回答 2

2

尝试使用==

var customer = _customerService.GetCustomer(c => c.Nickname == "abc");

或者只是检查null:

var customer = _customerService.GetCustomer(c => c.Nickname != null && c.Nickname.Equals("abc"));
于 2013-10-15T03:13:09.797 回答
0

是的,这是正确的,您不能针对 null 调用方法......这样想:

当变量为 null 时,您正在尝试执行以下操作: null.Method() <- 这很糟糕..

你可能想尝试的是

var customer = _customerService.GetCustomer(c => "abc".Equals(c.Nickname));
于 2013-10-15T03:13:56.503 回答