2011-08-18 54 views
1

我用ASP.NET MVC3构建了一个网站,使用实体框架4.它应该是一个问题。多线程和实体框架

我的控制器都使用相同的DbContext类是这样的:

private aim_spg_dk_dbEntities db = new aim_spg_dk_dbEntities(); 

我想知道,这是否会误事,具有多用户的网站。如果100个用户回答问题,会发生什么?我应该使用线程,以及如何?

感谢

回答

2
private aim_spg_dk_dbEntities db = new aim_spg_dk_dbEntities(); 

这是好的 - 要创建为每个请求一个新的DB上下文实例 - 那么每个用户将使用一个单独的数据库上下文实例。你不能做的是跨多个线程共享同一个数据库上下文实例(数据库上下文不是线程安全的)。

1

实体上下文将成为线程特定的并且执行语句作为事务。除非你在请求线程之间使用共享数据,否则没有什么可担心的。