1

我需要知道执行以下操作的最佳方法。我有嵌套的业务级 API(比如 1 级和 2 级)。L1 需要调用 L2。这两个 API 都直接在自己的嵌套级别使用数据库层。

现在,在数据库层,我每次都从池中获取数据库连接,如下所示:

    SqlConnection conn = new SqlConnection(connString);
    conn.Open();
  1. 如上所述在每个数据库级别调用中每次都获取数据库连接是否合适?我知道它会从 ASP.NET 连接池返回一个连接。

  2. 但是,在整个嵌套调用(或在当前的 http 请求生命周期)中保持相同的数据库连接不是更好吗?

  3. 每次从池中获取连接会导致嵌套 TransactionScopes 出现问题吗?

4

1 回答 1

0

回答 #1 没关系,但如果您的系统真的很忙,您需要在连接字符串中设置最大连接参数。理想情况下,(至少我这样做的方式是: - 请求响应周期的一个连接。)

2,3 取决于你如何实现这两层,如果你只有一个连接两层都在使用,那么事务将是一个问题。我猜这两层并没有真正“连接”,因为您不需要事务来跨这些层工作。如果是这样,那么我会走你的路线。

于 2010-11-12T03:39:58.620 回答