我有以下查询返回未将对象引用设置为对象错误的实例:
(From u In db.Customers Where u.CustomerEmail Like UserName.Text Select u.CustomerEmail).ToString
(From u In db.Customers Where u.CustomerEmail Like UserName.Text Select u).Single
如果我使用相同的值进行sql select,我会得到所需的数据:
(select CustomerEmail from dbo.Customers where dbo.CustomerEmail like @UserName)
请指出我的语法错误。
感谢。
答案 0 :(得分:0)
如果在查询后执行ToList()调用会发生什么。你看到了预期的结果吗?如果你没有并且返回null(这是不正确的,因为你期望一个空的IEnumerable)这将解释异常。
尝试从代码中删除使用过的持久性框架,看看会发生什么。
答案 1 :(得分:0)
采取第一个声明
(From u In db.Customers Where u.CustomerEmail Like UserName.Text Select u.CustomerEmail).ToString
如果
,这可以给出null异常db is null
db.Customers is null
或
UserName is null
我认为就是这样。
ToString命令是否实际执行查询?我不知道EntityFramework,但如果像Linq2Sql一样,它返回sql查询,那么这不应该抛出null异常。如果它实际执行了查询,那么假设u.CustomerEmail被定义为一个字符串,那么我再也不认为这会抛出一个null异常。
如果这是一个缺少数据的情况,那么你仍然不会期望一个null异常。 Single可能会抛出'Sequence contains no elements'错误。