Ser*_*gio 9 .net c# asp.net-mvc repository nerddinner
我正在使用ASP.NET MVC设计一个网站,对于存储库的确切性质可能有点困惑.
在NerdDinner示例之后,我的站点应该有一个存储库,根据需要提供实体.但是,我也听说你应该有不同的存储库来处理特定的相关实体集....
在我的网站的情况下,将有许多实体(大约15个表)但大多数都是相关的.有一个存储库包含拉动/更新/删除等所需的所有方法,或者我应该将它们拆分,这是否可取/可取?
如果您使用接受类型的通用存储库,那么我认为没有任何理由使用多个类型.
我们使用这样的界面:
public interface IRepository
{
void Save<ENTITY>(ENTITY entity)
where ENTITY : Entity;
void Delete<ENTITY>(ENTITY entity)
where ENTITY : Entity;
ENTITY Load<ENTITY>(int id)
where ENTITY : Entity;
IQueryable<ENTITY> Query<ENTITY>()
where ENTITY : Entity;
IList<ENTITY> GetAll<ENTITY>()
where ENTITY : Entity;
IQueryable<ENTITY> Query<ENTITY>(IDomainQuery<ENTITY> whereQuery)
where ENTITY : Entity;
ENTITY Get<ENTITY>(int id) where ENTITY : Entity;
IList<ENTITY> GetObjectsForIds<ENTITY>(string ids) where ENTITY : Entity;
void Flush();
}
Run Code Online (Sandbox Code Playgroud)
然后在这样的代码中使用:
var returnedObjects = repository.GetAll<ObjectClass>();
var singleObject = repository.Get<ObjectClass>(id);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1791 次 |
最近记录: |