我正在尝试使用 ORMLite 实现存储库模式。我最初是这样开始的:
public List<Todo> GetByIds(long[] ids)
{
using (IDbConnection dbConn = dbFactory.OpenDbConnection())
{
return dbConn.Ids<Todo>(ids).ToList();
}
}
但是在我的存储库中的每种方法下都有这个似乎有点重复?所以我创建了一个数据上下文类,我的所有存储库都继承自:
public class TodoRepository : DataContext
这是那个DataContext
类:
public class DataContext
{
protected OrmLiteConnectionFactory dbFactory = new
OrmLiteConnectionFactory(ConfigurationManager.ConnectionStrings["AppDb"].
ConnectionString, SqlServerOrmLiteDialectProvider.Instance);
protected IDbConnection dbConn;
public DataContext()
{
dbConn = dbFactory.OpenDbConnection();
}
}
然后我只需在我的方法中执行此操作:
public List<Todo> GetByIds(long[] ids)
{
return dbConn.Ids<Todo>(ids).ToList();
}
我只是好奇这是否是一个好的设计模式,以及其他人在使用存储库模式通过 ORMLite 进行数据访问时提出了什么。