哑Linq查询?

时间:2013-10-15 03:11:18

标签: c# linq

我正在使用Sql server 2012,Entity Framework 5.0

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

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数据时

2 个答案:

答案 0 :(得分:2)

尝试使用==

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

或者只是检查null:

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

答案 1 :(得分:0)

是的,这是正确的你无法调用null的方法......想一想:

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

您可能想要尝试的是

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