我被警告不要在我的应用程序中使用 Entity Framework 的多个 DBEntityContext。原因是由于并发访问数据库而导致死锁的风险。
谁能证实这一点?如果这是真的,那么为 DBContext 实现一个 Singleton 对象是不是一个好主意?
欢迎就此问题发表任何文章。
谢谢你提前。
最佳答案
ObjectContext 和 DbContext 不是线程安全的。参见 http://msdn.microsoft.com/library/system.data.objects.objectcontext.aspx .如果您在像 ASP.NET 这样的多线程环境中使用它们,那么在使用单个实例时就会遇到大麻烦。建议每个请求使用一个 ObjectContext。必须在请求结束时处理 ObjectContext。文章Managing Entity Framework ObjectContext lifespan and scope in n-layered ASP.NET applications可能会有帮助。
您是否有可能误解了告诉您有关死锁的顾问?可能他想警告您以错误的方式使用 ObjectContext 时可能会出现死锁。
关于c# - Entity Framework 和 DBContext 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10991762/