【问题标题】:What will happen if i initialize multiple object context如果我初始化多个对象上下文会发生什么
【发布时间】:2018-08-06 12:23:17
【问题描述】:

我想知道如果我多次初始化多个对象上下文会发生什么,实体框架如何管理连接。 下面的代码会创建三个到数据库的新连接,还是只有一个连接可以让任何人提前知道。

using (MDDXITEntities context = new MDDXITEntities())
{
    userData= context.uspGetuserData(userID).ToList();

    using (MDDXITEntities context1 = new MDDXITEntities())
    {
       userData = context1.uspGetuserData(userID).ToList();
    }

    using (MDDXITEntities context2 = new MDDXITEntities())
    {
        userData = context2.uspGetuserData(userID).ToList();
    }
}

【问题讨论】:

  • 你试过了吗?当你这样做时发生了什么?
  • EF 有自己的管理连接池的方式。您的代码将创建三个新连接。
  • 什么也没发生,但我想知道实体框架是打开到数据库的多个连接还是只打开一个连接
  • 打开一个或三个连接有区别吗?无论如何,您将在using 的末尾关闭它们
  • @Fabio 更有可能将它们送回游泳池,但是是的,基本上是一样的。

标签: c# asp.net asp.net-mvc entity-framework


【解决方案1】:

多次重复数据库操作。

您只针对具有多个对象的一个​​连接

像 DB 一样

对象不同

context --->DB
context1 -->DB
context2 -->DB

像这样。

【讨论】:

  • 好的,但是如果我使用多个 using 块会产生任何问题,如果我使用 100 个 using 会出现任何错误,如果我只使用一个实例,我会遇到与并发相关的问题类级别 MDDXITEntities context2 = new MDDXITEntities() 并使用它每个人
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-04
  • 2019-12-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多