私はこのような何か、現在私が働いているプロジェクトで、リポジトリを実装するためのいくつかの異なる方法を試し、現在はその上に、一般的なメソッドを持つ単一のリポジトリを持っている:私ができる一般的な方法の単一リポジトリ...悪い考えですか?
public interface IRepository
{
T GetSingle<T>(IQueryBase<T> query) where T : BaseEntity;
IQueryable<T> GetList<T>(IQueryBase<T> query) where T : BaseEntity;
T Get<T>(int id) where T : BaseEntity;
int Save<T>(T entity) where T : BaseEntity;
void DeleteSingle<T>(IQueryBase<T> query) where T : BaseEntity;
void DeleteList<T>(IQueryBase<T> query) where T : BaseEntity;
}
その方法単一のリポジトリをクラスに挿入し、それを使用して必要なものを取得します。
これは私のために働くようだ
を(ちなみに、私はセッションごとのWeb要求パターンで、私のORMとして流暢NHibernateはを使用して、とのStructureMapを使用して、私のリポジトリを注入しています) - メソッド私はこのリポジトリに必要なすべてを行うことを定義しました。しかし私のウェブ検索では、このアプローチを使って他の人が見つからなかったので、何か不足していると思います...私のアプリケーションが成長するにつれて、これは問題を引き起こしますか?
ルートエンティティごとにリポジトリを持っていることについて多くの人が読んでいますが、ルートエンティティを特定のインターフェイスで識別し、そのインターフェイスを実装するクラスのみを許可する汎用メソッドを制限すると、 ?
ありがとうございます。
これは意見に基づく質問です。これまでのすべての答えは同じことを確認しています。いくつかの変更を加えれば、これはhttps://softwareengineering.stackexchange.com/に適合します。 –