0

私は、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>使用できるようにしたいと考えていますが、 で利用可能なオプションとして表示されません。 [データ ソースの構成] ダイアログ。BaseRepositoryObjectDataSource

この目的のためにジェネリックを使用することさえ可能ですか? そこにいるASP.NET MVCの達人にとって、これはASP.NETだけでなくそのフレームワークを使用してより簡単に処理できるものですか?

4

0 に答える 0