数据库通信类作为单例

时间:2016-08-09 17:34:57

标签: c# entity-framework design-patterns singleton

我在考虑,与数据库进行通信的班级是否应该是单身人士。

我没有在需要的任何地方注入上下文,而是在Database类中创建了一个,这是单例类。

这是好的做法吗?

代码:

    class DatabaseService
{
    public FreelanceOrganizerDataContext DatabaseContext { get; private set; } = new FreelanceOrganizerDataContext();
    static DatabaseService _singleton = new DatabaseService();
    private DatabaseService() { }

    public static DatabaseService GetDatabaseService()
    {
        return _singleton;
    }

    //Save Section
    public void AddProject()
    {

    }

    public void AddCustomer()
    {

    }

    //etc

}

1 个答案:

答案 0 :(得分:1)

我建议使用IoC,例如UnityAutofac。您可以在您的类中执行诸如注入依赖项之类的操作,控制对象的生命周期(实例化它们的时间和频率),以及更好地为单元测试设置自己。