【问题标题】:EntityFramework.Extensions simple .Delete() throws null reference exceptionEntityFramework.Extensions simple .Delete() 抛出空引用异常
【发布时间】:2013-08-07 02:15:01
【问题描述】:

所以我正在尝试使用 EntityFramework.Extended 进行以下操作:

https://github.com/loresoft/EntityFramework.Extended

context.Logs.Delete(l => l.Id == 216471);

这是我能提供的最简单的例子。

问题是这个和我尝试做的任何其他 .Delete() 都是给我一个:

System.NullReferenceException: Object reference not set to an instance of an object.

我正在针对 Oracle 11gR2 数据库使用 EF 5.0.0 和 EF.Extended 5.0.0.73。

有什么想法吗? :)

在 GitHub 上发帖:http://bit.ly/12Z6xj2

【问题讨论】:

  • context.Logs 由于某种原因可能为空。我不熟悉 EF.Extended,但您可能想查看上下文,看看是否有某种原因它没有被某种 DbSet 填充。
  • var count = context.Logs.Count();返回 12731 并从日志中选择 count(*);返回 12731,所以我确定它不是 NULL...而且我可以枚举 Visual Studio 中设置的结果...等等
  • 只是猜测...没有 Id == 216471 的日志...
  • 从 ID = 216471 的日志中选择 *;返回结果,所以不! :D
  • 异常的完整堆栈跟踪?我怀疑原因是您使用的是 Oracle 而不是 SQL Server 或 SQL Server CE。

标签: oracle entity-framework entity-framework-5 entity-framework-extended


【解决方案1】:

尝试 context.Logs.where(l => l.Id == 216471).Delete()

【讨论】:

  • 仍然看到“对象引用未设置为对象的实例”... :(
  • 你是否在这条语句上设置了断点,或者你能看到哪个对象是空的?确保 EF.Extended 是最新版本
  • 扩展批处理方法似乎不支持 oracle :(
  • 既然你重写了,也许你应该把代码给你看,否则没人知道他能不能帮你。 :)
  • 从创建日期的日志中删除
猜你喜欢
  • 2021-04-29
  • 2022-01-05
  • 1970-01-01
  • 2011-07-22
  • 2014-11-19
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
相关资源
最近更新 更多