首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架6查询生成NullReferenceException

实体框架6查询生成NullReferenceException
EN

Stack Overflow用户
提问于 2016-09-22 14:26:51
回答 1查看 873关注 0票数 2

编辑:这不是不了解基本编程的问题(例如试图取消引用空对象引用)。

编辑:在Linqpad中添加来自EF的堆栈跟踪。

使用EF6,我有一个非常简单的查询:

代码语言:javascript
复制
var menu = dbcontext.Tree.Where(t => t.Left > 2 && t.Right < 10).ToList();

直到它神秘地停下来。dbcontext.Tree是Server 2012中的视图。使用Linqpad5,我可以使用它的内置连接获得预期的结果。建立一个EF连接到我的项目,我得到了NRE。通过检查SQL,我可以将其复制并粘贴到SQL查询窗口中,并获得适当的结果。我也得到了NRE而不需要打电话到哪里。

我已经尝试从数据库中更新我的模型来刷新任何东西。我尝试从模型中删除视图并进行更新。我试过完全删除模型并重新创建它。我重新启动了Visual和我的计算机。对于查询,我得到相同的NRE。我不知道我还能尝试什么,这个NRE对我来说毫无意义,因为我得到了预期的结果,除了EF。如果我以前没有看到它起作用的话,我会把它归因于EF的错误。

有人处理过这事吗?在网上搜索这一特定的情况没有产生任何结果。

堆栈跟踪:

代码语言:javascript
复制
at System.Data.Entity.Core.EntityKey.AddHashValue(Int32 hashCode, Object keyValue)
at System.Data.Entity.Core.EntityKey.GetHashCode()
at System.Collections.Generic.GenericEqualityComparer`1.GetHashCode(T obj)
at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
at System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value)
at System.Data.Entity.Core.Objects.ObjectStateManager.TryGetEntityEntry(EntityKey key, EntityEntry& entry)
at System.Data.Entity.Core.Objects.ObjectStateManager.FindEntityEntry(EntityKey key)
at System.Data.Entity.Core.Common.Internal.Materialization.Shaper.HandleEntityAppendOnly[TEntity](Func`2 constructEntityDelegate, EntityKey entityKey, EntitySet entitySet)
at lambda_method(Closure , Shaper )
at System.Data.Entity.Core.Common.Internal.Materialization.Coordinator`1.ReadNextElement(Shaper shaper)
at System.Data.Entity.Core.Common.Internal.Materialization.Shaper`1.SimpleEnumerator.MoveNext()
at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-22 15:53:41

问题是,您的模型(在上面的示例中是Tree)有一个或多个属性是不可空的(在映射中也可能标记为不可空),但是数据存储中相应的列是可空的。只有当检索到具有其中一列的null值的记录时,此异常才会显示出来。

  • 模型修复--在更新模型时,请确保对可空值类型使用Nullable<T>?,如果您定义了映射(通过属性或继承EntityTypeConfiguration的类型),也要指定属性是可选的。
  • 数据存储修复-或者更改数据存储模式和数据,使其与模型中所期望的对齐。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39641813

复制
相关文章

相似问题

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