恰好实体框架的DbContext和什么的SaveChanges过程中发生错误后regisered实体()(例如索引禁止重复行或超时)之后。它们仍然可用,或者它们处于Inconsistant状态,应该扔掉吗?是的DbContext安全使用数据库出错
2
A
回答
1
它们仍然可以提供你解决原来的错误。如果超时,您可以再试一次,但如果它是索引错误,则问题需要解决,因为调用SaveChanges
将启动新的事务并尝试保存您所做的任何更改。如果一次更改失败,则整个事务会回滚。
没有得到一个新的,虽然要取决于你的架构重新使用上下文的机会。
举例来说,如果你不喜欢的东西:
using (var context = GetContext())
{
//do something that goes wrong
}
我希望相应的错误处理要到位,这样的背景下被关闭(因为这将是击中using
结束时)和并显示错误,以便上下文不应该可用。
编辑
至于评论,有一个单一的背景下开放的很长一段时间是不可取的。 SQL服务器是它自己的连接池,它控制打开和关闭连接,所以当你需要时打开一个上下文并不慢。这也可以更好地控制错误。
相关问题
- 1. 使用Java.Thread将数据插入MySQL数据库是否安全?
- 2. 数据库安全
- 3. 春季安全:使用数据库
- 4. 是否安全?用户将数据插入数据库..?
- 5. HTML5 Web数据库安全
- 6. 安全SQLite数据库
- 7. 关于数据库安全
- 8. 火鸟数据库安全
- 9. Sqlite数据库安全
- 10. 数据库安全(phpmyadmin)
- 11. 无法使用Spring安全性使用数据库登录
- 12. 使用相同的数据库创建多个DbContext的表
- 13. 保护SQL Server数据库的安全
- 14. Android:与数据库的安全连接
- 15. 安全的只读sqlite3数据库
- 16. 分割mysql数据库的安全
- 17. 什么是使用PHP连接到数据库的最安全的方法?
- 18. 什么是使数据库的用户输入安全的最佳功能?
- 19. 使用System.currentTimeMillis()来安全地生成唯一的数据库ID?
- 20. 使用PHP PDO/MySQL连接数据库的安全方式?
- 21. Android:使用预加载的数据库文件安全吗?
- 22. VSDBCMD.exe不使用集成安全性的数据库部署
- 23. 使用Web服务保护数据库的安全
- 24. 使用Glassfish V3的JWS和安全数据库连接
- 25. 用撇号安全地插入SQLite数据库的数据
- 26. 带有数据库更改的DbContext
- 27. 本地网络上的Azure Cosmos数据库仿真器抛出安全错误
- 28. 添加到数据库中动态使用的DbContext
- 29. 使用数据库的MVC3操作过滤器(EF 4.1 DBContext,Ninject)
- 30. 如何使用PHP来安全调用MySQL数据库?
看到这个:https://msdn.microsoft.com/en-us/data/jj729737.aspx – Sampath