我正在设计一个内部企业应用程序来管理使用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更容易处理吗?