我需要知道执行以下操作的最佳方法。我有嵌套的业务级API(比如级别1和级别2)。 L1需要拨打L2。两个API都直接在自己的嵌套级别使用数据库层。
现在,在数据库层,我每次都从池中获取数据库连接,如下所示:
SqlConnection conn = new SqlConnection(connString);
conn.Open();
每次在每个数据库级别调用上获取数据库连接是否合适?我知道它将从ASP.NET连接池返回一个连接。
但是,在整个嵌套调用中(或整个当前的http请求生命周期内)维护相同的数据库连接不是更好吗?
每次从池中获取连接会导致嵌套的TransactionScopes出现问题吗?
答案 0 :(得分:0)
回答#1 没关系,但如果你的系统真的很忙,你需要在你的连接字符串中提高max connection参数。理想情况下(至少我这样做的方式是: - 请求响应周期的一个连接。)
2,3取决于您如何实现这两个层,如果您只有一个连接使用两个层,那么事务将是一个问题。我猜这两层并没有真正“连接”,因为你不需要事务来跨这些层工作。如果是这样,那么我会走你的路线。