当使用几个大型主表进行初始项目时,存储库模式似乎很有效。存储库模式的最佳实践 - 每个表的回购?
但随着项目的发展,它似乎有点不灵活。假设你有大量的子表挂在主表之外,你是否需要每个表的存储库?
E.g.
CustomerAddress记录具有以下子表:
- >县
- >国家
- > CustomerType
在用户界面上,需要显示3个下拉列表,但它为上述每个选择下拉数据的表格编写一个存储库有点单调乏味。
是否有最佳做法/更有效的方式来做到这一点?
作为一个例子说,你有一个主要的CustomerAddress存储库,我猜是从基本repo接口继承了主CRUD操作的'聚合根'。
之前我已经对聚合根进行了简化,并直接进入了这些表的上下文。
例如
public Customer GetCustomerById(int id)
{
return Get(id);
}
public IEnumerable<Country> GetCountries()
{
return _ctx.DataContext.Countries.ToList();
}
等等
但有时不感觉权利,因为国家是不是客户的一部分,但我觉得我需要把它钉到东西,而不必为每个表创建大量的回购协议。每张表的回购肯定对我来说也不合适。
好。因为你删除了一个'CustomerAddress',所以'Country'不会因为destroyd而失效。我认为它会继续蓬勃发展。这不是儿童聚合。 – jgauffin 2013-01-14 06:43:45
避免使用ORM存储库;)http:// ayende。com/blog/3955/repository-is-new-singleton – fex 2014-08-11 13:25:13