多个控制器可以使用不同的dbcontexts同时访问同一个数据库吗?

问题描述:

我正在使用实体框架和控制器与异步方法。多个控制器可以使用不同的dbcontexts同时访问同一个数据库吗?

当一个控制器通过异步方法数据库播放时,服务器可能会收到来自其他客户端的请求使用相同的数据库发挥。

我知道dbcontext不是线程安全的。

为什么这里没有问题?

+0

这取决于您连接到的数据库的类型。有些用户锁定以防止多个用户同时访问数据库时发生争用。 SQL Server有锁,但Jet Engine或ACE驱动程序(由access和excel使用)没有锁来防止争用。 – jdweng

我理解的DbContext不是线程安全的。

这意味着,相同DbContext实例不应该从多个线程中使用。对于多个DbContext来说,在不同线程上击数据库是完全正确的。

在这种情况下数据库会发生什么情况取决于数据库的锁定/并发设置,但这是另一个问题。