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 でのデータ アクセスにリポジトリ パターンを使用するときに他の人が思いついたものであるかどうかに興味がありました。