【发布时间】:2010-09-28 20:00:46
【问题描述】:
我正在使用 NHibernate 在 ASP.NET MVC 中开发一个 Web 应用程序。
根据我在 Google 上找到的文章和教程,我将 Repository 用于我的课程。
我有 10 个类和 10 个存储库。今天我发现我的 90% 的存储库是完全相等的,除了类。这是一个例子:
public class PromocaoRepository:IPromocaoRepository {
private ISession Session;
public PromocaoRepository() {
this.Session = NHibernateSessionFactory.OpenSession();
}
public void Add(Promocao promocao) {
using(ITransaction transaction = this.Session.BeginTransaction()) {
this.Session.Save(promocao);
transaction.Commit();
}
}
public void Edit(Promocao promocao) {
using(ITransaction transaction = this.Session.BeginTransaction()) {
this.Session.Update(promocao);
transaction.Commit();
}
}
public void Remove(Promocao promocao) {
using(ITransaction transaction = this.Session.BeginTransaction()) {
this.Session.Delete(promocao);
transaction.Commit();
}
}
public Promocao GetById(int id) {
return this.Session.Get<Promocao>(id);
}
}
有一种方法可以做一种我可以在所有课程中使用的通用存储库吗?
如果可能,如果我需要为特定类创建特定方法,我应该怎么做?
【问题讨论】:
-
Using a Generic Repository pattern with fluent nHibernate 的可能重复项 - 如您所见,75% 的答案链接到现有答案
标签: asp.net-mvc nhibernate design-patterns oop repository