使用Linq-To-Sql,DDD和存储库模式重新整形数据(?)

时间:2011-04-06 12:40:46

标签: linq-to-sql domain-driven-design repository-pattern

我的数据库中有以下架构:

enter image description here

(好吧,不是真的,但它适用于我的问题的背景。)

在我的域模型中,我有一个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数据。)

您对我的方法的看法表示赞赏。

0 个答案:

没有答案