0

我有两节课:

public class Product : Base
{
    public string Name { get; set; }
    public string Description { get; set; }
    public virtual List<Ingredient> Ingredients { get; set; }
}

public class Ingredient:Base
{
    public string Description { get; set; }
}

我的问题是:插入/更新产品成分的最佳方式是什么?假设我需要在插入/更新之前验证产品和成分,我应该创建一个产品存储库还是一个产品存储库和成分存储库?


我看到当我在我的控制器中使用我的 DbContext 时这很容易.. 但是如果我需要一个由 modules(bl,dao) 制作的系统?

4

1 回答 1

1

存储库数量的决定基于对域模型中聚合根的分析。如果没有. Product_ Ingredient_IngredientProduct

Product聚合根Ingredient吗?如果是,您应该单独处理产品和成分,ProductRepository如果不是,您应该为这两个实体提供单独的存储库。

您需要两个存储库的通常指示是多对多关系,但在这种情况下,EF 实体不能很好地与存储库配合使用,因为如果您之间有直接导航属性Product并且Ingredient您没有任何方法可以强制开发人员使用第二个用于Ingeredient访问和修改的存储库。

于 2012-05-21T08:22:03.677 回答