0

我是 Entity FrameWork 的新手,我有程序可以通过多个线程保存/更新到不同的表。

起初,我为每个操作打开了与数据库的新连接

var db = new AppDBEntities()

AppDBEntities 继承自 ObjectContext

直到我得到“连接太多”异常,我意识到我达到了 151 个连接。

我可以增加 MySql DB 中的 max_connection 属性,但这当然不是正确的解决方案......

所以我试图让应用程序对所有线程使用一个连接,我在管理这个过程中几乎没有迷失..

任何想法如何在使用或不使用同步对象的情况下跨所有线程使用一个数据库连接(Maby Entity Framework 已经有自己的解决方案来解决这个问题..)

谢谢。

4

2 回答 2

0

为什么不将您的 AppDBEntities 调用放在 using 语句中,这将为您关闭连接。

using(var db = new AppDBEntities()){
// your code goes here.
}
于 2012-12-05T01:04:24.053 回答
0

在启动线程的类中将其定义为静态。但是你必须考虑线程安全。只有 1 个线程可以同时访问一个对象,因此通常意味着在读/写之前锁定它。我不知道在 DbContext 的情况下。

于 2012-12-05T15:29:04.567 回答