gpt4 book ai didi

C# + MySQL 连接

转载 作者:行者123 更新时间:2023-11-29 03:11:35 26 4
gpt4 key购买 nike

我目前正在开发一个连接到 MySQL 社区服务器数据库并运行一些查询的 C# (.NET) 项目。目前有 4 个类使用它们自己的 MySQLConnection 对象(我使用的是 MySQL .NET 连接器),以便连接到数据库。

这是好的做法,还是我应该使用一个“全局”(静态?)连接?使用一个连接有点违背我构建代码的习惯。不太喜欢使用一个共享静态字段的 100000 个对象。我敢打赌这也违背了大多数程序员的观点。

我还注意到,一旦调用 connection.Close(),连接不一定会关闭。再次尝试 .Open() 它会导致异常。我相信这是因为我没有在连接字符串中设置“Pooling=False”。我会用它做实验。如果您对此也有任何想法,请随时将它们放在此处。

所以,简而言之,我想要一些关于如何组织我的 MySQLConnections 的意见。如果您认为所有程序类都使用单个静态 MySQLConnection 更好(不一定是性能方面的,我更多地谈论的是多个 MySQLConnections 对数据库系统本身的影响),让我知道您为什么这么认为.

我希望最终程序有大约 10 或 15 个类,每个类都主动查询数据库。

最佳答案

我的经验法则是:

  • 保持连接打开的时间尽可能短
  • 让 ADO.NET 为您处理连接池
  • 仅当进程一起参与事务时才共享连接

所以,不,你不应该使用一个全局静态连接。但是你可以有一个实用方法,为你的数据获取方法提供一个开放的连接。然后你会做类似的事情(假设 Sql 是你的实用程序类):

public IEnumerable<MyClass> GetSomeData()
{
using (var cn = Sql.GetOpenConnection())
{
//get your data here
}
}

关于C# + MySQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7472394/

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