我的数据库中有以下架构:
(好吧,不是真的,但它适用于我的问题的背景。)
在我的域模型中,我有一个RestaurantMenu(根实体)类,其中包含一组MenuItem对象,如下所示:
public class MenuItem
{
public String Category { get; set; }
public Guid ID { get; set; }
public String Name { get; set; }
public Decimal Price { get; set; }
}
我希望能够查询我的存储库,根据餐厅ID和菜单类型(名称)返回MenuItem对象列表。如您所见,这意味着我需要进行一系列连接并返回菜单信息的展平视图。我正在使用Linq-to-SQL(不是我的选择)来实现数据访问技术。
如何设置L2S查询以返回所需数据?
DDD人员的下一个问题更多,我有一个单独的用例,可以更直接地使用菜单,类别和项目表来创建和编辑菜单“模板”。因此,我将Menu视为聚合根,并将MenuService作为我的域模型中Menu类的Facade,以及一个处理数据访问(获取,查找,删除和保存)的MenuRepository。关于这方面的一些问题:
我应该为RestaurantMenu课程提供单独的存储库(和服务),还是应该通过相同的渠道提供?
也许,RestaurantMenu更适合作为Menu的子类吗?
(请记住,当餐厅管理员正在“编辑”他的餐厅菜单时,我还需要能够'保存'到ItemPricing表。这不会改变任何菜单/类别/项目表内容方式 - 只有ItemPricing数据。)
您对我的方法的看法表示赞赏。