私は、ASP.NET (C#)、nHibernate、およびバックで SQL Server を使用して、中小企業の融資を管理するための社内エンタープライズ アプリケーションを設計しています。
私が行った多くの読書から、ドメイン オブジェクトごとに個別のリポジトリ (および個別のサービス レイヤー オブジェクト) を持つことはかなり一般的な方法のようです。
それを念頭に置いて、基本的な CRUD 操作 (ISession と ITransaction を使用して処理される) 以外の「特別な要件」を持たないドメイン オブジェクトに使用される、基本的なリポジトリ インターフェイスとそれに基づく一般的なリポジトリ クラスがあります。コード省略)
// Repository interface:
public partial interface IRepository<T>
{
void Add(T entity);
void Update(T entity);
void Remove(T entity);
ICollection<T> GetAll();
T GetByKey(int _ID);
}
// Generic repository - basic CRUD for most domain objects
public partial class BaseRepository<T> : IRepository<T>
{
protected ISession session;
...
public virtual void Add(T entity)
{ ... }
public virtual void Update(T entity)
{ ... }
public virtual void Remove(T entity)
{ ... }
public virtual ICollection<T> GetAll()
{ ... }
public virtual T GetByKey(int _ID)
{ ... }
}
述べたように、 以外のほぼ同一のコードを持つ数十のリポジトリのコードを持つのではなく、このクラスを のビジネス オブジェクトとして<type>
使用できるようにしたいと考えていますが、 で利用可能なオプションとして表示されません。 [データ ソースの構成] ダイアログ。BaseRepository
ObjectDataSource
この目的のためにジェネリックを使用することさえ可能ですか? そこにいるASP.NET MVCの達人にとって、これはASP.NETだけでなくそのフレームワークを使用してより簡単に処理できるものですか?