ADO 实体框架是否能够运行多个实例

本文关键字:运行 实例 实体 框架 是否 ADO | 更新日期: 2023-09-27 18:36:15

所以我们有一个使用自制数据访问框架的 Web 服务,我发现在当前状态下,Web 服务不能一次运行多个实例,因为这个框架会开始踩自己的脚,抱怨连接被关闭/已经打开和这样的错误。

所以我实现了一个 SQL 锁/互斥锁,将所有请求排队,从那时起,它就非常顺利。

我最近为另一个使用 ADO 实体框架的项目工作(在此之前我从未玩过它),发现它几乎可以完成这个自制框架的功能。

我的问题是,ADO 实体框架本身是否足够强大,所以我不再需要这个 SQL 互斥体实现?

谢谢。

ADO 实体框架是否能够运行多个实例

如果您遵循规则"不要在线程之间共享 ObjectContext(代码中的 DbContext)实例",一切都会好起来的。

实体

框架使用一些静态数据来提高性能(实体模型缓存),但大多数对象(实体连接、上下文、更改跟踪器等)不是线程安全的,不应在线程之间共享。

是的,它足够强大,可以做到这一点,因为您不在线程之间共享数据库上下文,而您的自制层必须这样做。不是我会去的路。