微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我创建了一个单例类,这个类返回一个数据库连接.所以我的问题是这个连接也是满足单身人士的标准?
如果不,我怎么可以让它单身.
这是代码.
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

原文地址:https://www.jb51.cc/csharp/92989.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐