我正在本地做一些测试,因为我在.NET上使用Entity Framework遇到了一些严重问题(很多块,并发问题等),所以我决定从底层开始分析Ado.NET连接
我正在调试我的代码,同时,我正在检查 MySql Workbench 的打开连接。
我正在调试的代码是下一个:
using (var con = new MySqlConnection(_connectionString))
{
con.Open();
//this extension method is because i am using the Dapper Library
var products = con.Query<Product>("Select productId, name from products");
con.Close();
}
因此,连接状态的一步一步是:
con.Open();
执行 open()方法后,连接已打开(命令:睡眠)
var products = con.Query<Product>("Select productId, name from products");
执行查询后,连接仍处于打开状态(逻辑上)。最后我执行:
con.Close();
之后,连接仍在命令中打开:sleep 。怎么可以避免呢?因为它会保持连接打开,直到我杀死IIS实例 ...它并不是很好的并发...因为如果有很多用户在数据库中检索数据,我就不会这样做;如果他们没有针对数据库执行任何操作,则需要打开许多连接。
如何改进?