作为单例的数据库通信类

本文关键字:通信 数据库 单例 | 更新日期: 2023-09-27 18:01:37

我在考虑,与数据库通信的类是否应该是单例的。

我没有在任何需要的地方注入上下文,而是在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
}

作为单例的数据库通信类

我建议使用Unity或Autofac等IoC。您可以做一些事情,例如将依赖项注入到类中,控制对象的生命周期(何时以及多久实例化一次),以及更好地为单元测试设置自己。