作为单例的数据库通信类
本文关键字:通信 数据库 单例 | 更新日期: 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。您可以做一些事情,例如将依赖项注入到类中,控制对象的生命周期(何时以及多久实例化一次),以及更好地为单元测试设置自己。