我正在使用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数据时
答案 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));