私はエンタープライズアカウンティングアプリケーションのアーキテクチャを変更しています。私はIRepositoy <TDataModel>パターンを使用しますが、少し違いがあります。私は基底IRepository <TDataModel>から派生するすべての実体のためのインターフェイスを作るつもりです。私のエンティティはクライアント、製品と注文した場合、たとえば、その後、私はIRepository <T>およびRepository-Per-Entity
IClientRepositoryを持っているでしょう:IRepository <ClientModel>
IProductRepository:IRepository <ProductModel>
IOrderRepository:IRepository <OrderModel>
public interface IRepository<TDataModel, TId>
{
TDataModel Get(TId Id);
IList<TDataModel> List();
TDataModel Add(TDataModel Item);
TDataModel Add(TDataModel Item, IContext executingContext);
void Update(TDataModel Item);
void Update(TDataModel Item, IContext executingContext);
bool Delete(TId Id);
bool Delete(TId Id, IContext executingContext);
IList<TDataModel> Where
(System.Linq.Expressions.Expression<Func<TDataModel, bool>> criteria);
}
public interface IProductRepository : IRepository<DataModel.Product, int>
{
}
理由私はいくつかのエンティティのCreationDateを設定するなど、BALではなくDALにいくつかのドメインモデルの属性を設定したいと思っています。 ?)
私はいくつかのIRepository <サンプルを見ましたが、この組み合わせを使用するものは見つかりませんでした。私はこれを行うには良いことがあることを知りたいですか?それはまったく正しいのですか?他の長所と短所は何ですか?事前に
おかげで
なぜ更新方法が必要ですか?カスタムビルドデータアクセスレイヤを使用しているのか、ORMの1つに頼っていますか? –
はい、NHibernateを使用していますが、他のプロジェクトでも更新方法があります。間違っていますか? – sos00