gpt4 book ai didi

c# - 在 .NET Web API 中重用与 Dapper 的数据库连接

转载 作者:行者123 更新时间:2023-11-30 15:50:56 25 4
gpt4 key购买 nike

我见过的大多数(如果不是全部的话).NET 中的 Dapper 示例都使用如下结构:

    using (SqlConnection conn = new SqlConnection(ConnectionString))
{
conn.Open();
return conn.Query<T>(sql, param);
}

如果您有 Web API,每次向服务器发出请求时都建立一个新连接是否明智?或者将连接抽象到另一个类并将其注入(inject)每个 Controller 以便它们使用相同的连接是否是更好的模式。

从表面上看,重用连接似乎会导致更快的响应,但我不知道 SqlConnection 对象中发生的事情的本质,所以我不确定这是否是个好主意。

最佳答案

代码具有误导性。在大多数情况下,您这样做时实际上并没有创建 连接。默认 pooling为连接启用,除非您明确告诉它不要。

我不是 100% 确定池背后的确切标准,但它的要点是,如果您在代码中快速重复使用相同的连接字符串,池实际上应该只创建一个从您的应用程序到 SQL Server 的连接,而不是每次执行 new SqlConnection 并打开它时都创建一个新连接。

通过处理连接,您基本上表示该特定使用已完成....因此维护池背后的逻辑可以知道您已完成该特定连接。同样,我不确切知道池是如何实现的,但我想它会在内部跟踪您的代码建立了多少连接,以便它可以决定是否保持与 ​​SQL Server 的实际连接打开。

关于c# - 在 .NET Web API 中重用与 Dapper 的数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58737905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com