Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将GridView和ObjectDataSource与泛型一起使用_C#_Asp.net_Generics_Repository_Objectdatasource - Fatal编程技术网

C# 将GridView和ObjectDataSource与泛型一起使用

C# 将GridView和ObjectDataSource与泛型一起使用,c#,asp.net,generics,repository,objectdatasource,C#,Asp.net,Generics,Repository,Objectdatasource,我正在设计一个内部企业应用程序,使用ASP.NET(C#)、nHibernate和后面的SQL Server管理小企业贷款 在我读过的很多书中,似乎每个域对象都有单独的存储库(以及单独的服务层对象)是一种相当普遍的做法,这对我来说似乎是一种过度使用和开销 考虑到这一点,我有一个基本的存储库接口和一个基于该接口的通用存储库类,用于除基本CRUD操作之外没有“特殊要求”的域对象(使用ISession和ITransaction处理,代码省略) //存储库接口: 公共部分接口假定 { 无效添加(T实体)

我正在设计一个内部企业应用程序,使用ASP.NET(C#)、nHibernate和后面的SQL Server管理小企业贷款

在我读过的很多书中,似乎每个域对象都有单独的存储库(以及单独的服务层对象)是一种相当普遍的做法,这对我来说似乎是一种过度使用和开销

考虑到这一点,我有一个基本的存储库接口和一个基于该接口的通用存储库类,用于除基本CRUD操作之外没有“特殊要求”的域对象(使用ISession和ITransaction处理,代码省略)

//存储库接口:
公共部分接口假定
{
无效添加(T实体);
无效更新(T实体);
无效删除(T实体);
i集合GetAll();
T GetByKey(int_ID);
}
//通用存储库-大多数域对象的基本CRUD
公共部分类基存储库:IRepository
{
受保护的会话;
...
公共虚拟空添加(T实体)
{ ... }
公共虚拟无效更新(T实体)
{ ... }
公共虚拟无效删除(T实体)
{ ... }
公共虚拟ICollection GetAll()
{ ... }
公共虚拟T GetByKey(int\u ID)
{ ... }
}
如上所述,我希望能够使用这个
BaseRepository
类作为
ObjectDataSource
的业务对象,而不是为几十个代码与
几乎相同的存储库编写代码,但它不会在“配置数据源”对话框中显示为可用选项


是否有可能为此目的使用通用的?对于任何一位ASP.NET MVC大师来说,使用该框架比使用ASP.NET更容易处理这件事吗?

您为什么不使用标记?我想这个问题会得到更多的关注。补充-谢谢你的提示。希望这有帮助!
// 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)
    { ... }
}