c# - 使用 MySQL 和 ASP.NET MVC 的池

标签 c# asp.net mysql asp.net-mvc

我正在使用 ASP.NET 和 MySQL 开发 Web 应用程序,但我没有使用 SqlClient 提供程序。

我在某处读到(我不记得在哪里),如果我需要建立连接池,我需要向文件 web.config 添加一些行。

要建立连接,每个模型中都会定义一个连接字符串,例如:

string sqlConnection = 
    "server=localhost; user id=root; password=***; database=test; pooling=true;Min Pool Size=0; Max Pool Size=60;";

要连接并进行查询,我执行以下操作:

MySqlConnection conection;
conection = new MySqlConnection(sqlConnection);
string query = "SELECT COUNT(*) FROM documents WHERE user_id = ?user_id;
MySqlCommand cmd = new MySqlCommand(query, conection);`

cmd.Connection.Open();
cmd.Prepare();
cmd.Parameters.Add("?user_id", userID);
cmd.ExecuteReader();
...
cmd.Connection.Close();

但是我想打开一个连接池并使用连接池,我不想每次都打开和关闭一个连接。

我将其放入 web.config 文件中:

<connectionStrings>
    <remove name="LocalMySqlServer"/>
    <add name="LocalMySqlServer" 
         connectionString="Data Source=localhost; userid=root;  password=***; database=test; Pooling=true; Min Pool Size=50; Max Pool Size=100;"  
         providerName="MySql.Data.MySqlClient"/>
</connectionStrings>

但是当我启动开发服务器时,我在MySQL Workbench中看不到任何连接。 。

只有当我调用模型并打开连接时才会发生这种情况。

如何在启动时进行连接池?

最佳答案

我认为您误解了连接池的概念。

连接池是数据库驱动程序或提供程序提供的一种机制。您仍然需要请求连接,但驱动程序/提供程序不会在每次创建连接时创建一个全新的连接,而是维护一个现成的预热对象池并向您提供其中一个。

这一切都在幕后悄然发生。

更新:

要使用 web.config 中的连接字符串:

string sqlConnection = 
   ConfigurationManager.ConnectionStrings["LocalMySqlServer"].ConnectionString;

您可能需要添加对 System.Configuration 的引用:

enter image description here

并添加:

using System.Configuration;

到类文件的顶部。

这是针对.NET 4.0项目的,但原理与.NET 2.0相同。

关于c# - 使用 MySQL 和 ASP.NET MVC 的池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5501955/

相关文章:

c# - 当 try block 内停止调试时,finally block 会执行吗?

asp.net - 如何使用 HttpClient 将 Json 数据作为参数传递给 web api

c# - 将加载配置添加到asp.net core中的注入(inject)依赖项

asp.net - WCF 路由/ESB 架构?

c# - 从代码隐藏设置对象参数标签

MySQL 正则表达式匹配至少 2 个点

javascript - 通过window.prompt将一些数据发布到mysql数据库的特定字段(代码运行不正常)

Mysql 选择行分组依据并按另一列排序

c# - 有没有标准的方法来访问 .Net 中的 Windows 服务文件?

c# - AWS CloudFormation .NET 软件开发工具包