加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

实体框架 – 单个或多个存储库类?

发布时间:2020-12-15 22:44:17 所属栏目:asp.Net 来源:网络整理
导读:我的数据库比较小,8个表,每个都有少于5列.我使用EF.我创建了单个存储库类,但现在我认为它可能不是正确的使用方法.我每个控制器应该有独立的存储库类吗?让我说我有产品,用户,独角兽将一个存储库类与所有这些控制器中的所有这些和实例化一起运行,或者我应该为
我的数据库比较小,8个表,每个都有少于5列.我使用EF.我创建了单个存储库类,但现在我认为它可能不是正确的使用方法.我每个控制器应该有独立的存储库类吗?让我说我有产品,用户,独角兽将一个存储库类与所有这些控制器中的所有这些和实例化一起运行,或者我应该为每个控制器创建一个单独的存储库类

解决方法

DDD的关键概念之一是总体根 – 这是您管理整组相关实体的“顶级”实体.

例如,在零售场景中,“订单”将是您可以访问订单本身的一个聚合根,一个OrderItems列表(即产品金额修饰符,如折扣),BillingAddress,ShippingAddress和PaymentMethod.这些都与订单本身密切相关,直到他们没有理由存在于订单范围之外.

每个聚合根应具有一个存储库,该存储库负责将根目录下的对象的整个子图保留下来.所以在上面的例子中,你不会想要或需要一个OrderItems的存储库,它可以独立地访问订单项目;相反,您应该实现一个OrdersRepository,它将Order和其所有子组件作为一个单元来处理.

根据您的特定域模型,您可能需要一个或多个存储库,但每个实体类型肯定不是一个.寻找总体根源时要问的关键问题是“这个实体有自己的身份和生命周期吗?订单做,OrderItems不.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读