加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 通过单例类获取db连接

发布时间:2020-12-15 04:01:39 所属栏目:百科 来源:网络整理
导读:我创建了一个单例类,这个类返回一个数据库连接.所以我的问题是这个连接也是满足单身人士的标准? 如果不,我怎么可以让它单身. 这是代码. public sealed class SingletonDB{ static readonly SingletonDB instance = new SingletonDB(); static SqlConnection
我创建了一个单例类,这个类返回一个数据库连接.所以我的问题是这个连接也是满足单身人士的标准?
如果不,我怎么可以让它单身.
这是代码.
public sealed class SingletonDB
{
    static readonly SingletonDB instance = new SingletonDB();
    static SqlConnection con =new SqlConnection(ConfigurationManager.ConnectionStrings["mydb"].ConnectionString);

    // Explicit static constructor to tell C# compiler
    // not to mark type as beforefieldinit
    static SingletonDB()
    {
    }

    SingletonDB()
    {
    }

    public static SingletonDB Instance
    {
        get
        {
            return instance;
        }
    }

    public static SqlConnection GetDBConnection()
    {
        return con;
    }
}

解决方法

你的单身人士还在休息.

就单身形象而言,请参见Jon Skeet的非常好的详细描述:http://www.yoda.arachsys.com/csharp/singleton.html

对于SqlConnection对象使用Singleton是一个非常糟糕的主意.没有理由这样做.

如果您尝试避免“新的SqlConnection()”或“connection.Open()”的性能命中,那么真的没有任何性能打击,因为在后台连接池.连接池处理昂贵连接的打开/关闭.不是SqlConnection对象.

您将无法同时使用连接打开多个SqlDataReaders / Commands,如果您尝试与多个线程共享相同的连接对象,将会遇到线程阻塞问题.

单身人士模式是最多使用和滥用的模式,您可能没有注意到单身人士的许多副作用.非常好的谈论这里的单身人士的危险http://www.youtube.com/watch?v=-FRm3VPhseI

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读