多个控制器可以使用不同的dbcontexts同时访问同一个数据库吗?
问题描述:
我正在使用实体框架和控制器与异步方法。多个控制器可以使用不同的dbcontexts同时访问同一个数据库吗?
当一个控制器通过异步方法数据库播放时,服务器可能会收到来自其他客户端的请求使用相同的数据库发挥。
我知道dbcontext不是线程安全的。
为什么这里没有问题?
答
我理解的DbContext不是线程安全的。
这意味着,相同DbContext
实例不应该从多个线程中使用。对于多个DbContext
来说,在不同线程上击数据库是完全正确的。
在这种情况下数据库会发生什么情况取决于数据库的锁定/并发设置,但这是另一个问题。
这取决于您连接到的数据库的类型。有些用户锁定以防止多个用户同时访问数据库时发生争用。 SQL Server有锁,但Jet Engine或ACE驱动程序(由access和excel使用)没有锁来防止争用。 – jdweng