使用Entity Framework保存时报错如何处理?

吾非大神 2012-12-14 07:53:50
向EF 上下文中添加完 对象数据之后,SaveChange(),这个时候如果报错(比如主键重复),
如何处理这些已经添加到上下文中的对象数据呢?

当我修改完数据,再次提交的时候,上次添加的数据还存在在EF上下文中,
所以还是会报错?

请问该如何解决这个问题呢?
...全文
241 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
吾非大神 2012-12-15
  • 打赏
  • 举报
回复
楼上没看明白我的问题哈
吾非大神 2012-12-15
  • 打赏
  • 举报
回复
问题解决了 多谢各位关注 我的错误是因为我把获取的EF上下文对象设置成了 static 的,所以。。。 早没发现。
dongshaohua 2012-12-15
  • 打赏
  • 举报
回复
用拉姆达表达式
吾非大神 2012-12-15
  • 打赏
  • 举报
回复
大家怎么处理这个问题的呢?
吾非大神 2012-12-15
  • 打赏
  • 举报
回复
多谢楼上关注 我的问题是,SaveChanges() 时报错,有内部事务嘛,所以数据库里的数据没有问题。就是没有真正的插入新数据, 可是我在代码中 Add 到上下文中的对象都还保存在上下文中。 所以,当我再次提交新的正确数据时,上下文中就包含了两份数据了。
q107770540 2012-12-15
  • 打赏
  • 举报
回复
你可以看一下 SaveChanges 有重载的方法 http://www.cnblogs.com/aisini/archive/2011/03/25/1994487.html
q107770540 2012-12-15
  • 打赏
  • 举报
回复
EF提供了事务处理 当其中一部出错了 事务会自动回滚 当然你用代码控制其不回滚
吾非大神 2012-12-14
  • 打赏
  • 举报
回复
不过我是在错误捕获里面 如何去 Refresh 这个ObjectContext呢? 它还需要指定 entity 参数。 而我是把多个entity 加入之后,才SaveChange()的。
吾非大神 2012-12-14
  • 打赏
  • 举报
回复
谢谢楼上 ,我修改一下代码 我也知道主键重复存不进去,但不知道如何处理已经添加到它里面的数据。 我看一下Refresh。
threenewbee 2012-12-14
  • 打赏
  • 举报
回复
主键重复不可能存到数据库中的。 你可以用Refreash从数据库中刷新数据,那些添加到DataContext但是没有保存到数据库中的数据就没有了。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧