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>,我希望能够使用这个BaseRepository类作为 的业务对象,而不是为几十个存储库提供几乎相同的代码ObjectDataSource,但它没有显示为可用选项“配置数据源”对话框。

甚至可以为此目的使用泛型吗?对于那里的任何 ASP.NET MVC 大师 - 使用该框架而不是 ASP.NET 更容易处理这个问题吗?

4

0 回答 0