实体框架 – 单个或多个存储库类?
发布时间:2020-12-15 22:44:17 所属栏目:asp.Net 来源:网络整理
导读:我的数据库比较小,8个表,每个都有少于5列.我使用EF.我创建了单个存储库类,但现在我认为它可能不是正确的使用方法.我每个控制器应该有独立的存储库类吗?让我说我有产品,用户,独角兽将一个存储库类与所有这些控制器中的所有这些和实例化一起运行,或者我应该为
我的数据库比较小,8个表,每个都有少于5列.我使用EF.我创建了单个存储库类,但现在我认为它可能不是正确的使用方法.我每个控制器应该有独立的存储库类吗?让我说我有产品,用户,独角兽将一个存储库类与所有这些控制器中的所有这些和实例化一起运行,或者我应该为每个控制器创建一个单独的存储库类
解决方法
DDD的关键概念之一是总体根 – 这是您管理整组相关实体的“顶级”实体.
例如,在零售场景中,“订单”将是您可以访问订单本身的一个聚合根,一个OrderItems列表(即产品金额修饰符,如折扣),BillingAddress,ShippingAddress和PaymentMethod.这些都与订单本身密切相关,直到他们没有理由存在于订单范围之外. 每个聚合根应具有一个存储库,该存储库负责将根目录下的对象的整个子图保留下来.所以在上面的例子中,你不会想要或需要一个OrderItems的存储库,它可以独立地访问订单项目;相反,您应该实现一个OrdersRepository,它将Order和其所有子组件作为一个单元来处理. 根据您的特定域模型,您可能需要一个或多个存储库,但每个实体类型肯定不是一个.寻找总体根源时要问的关键问题是“这个实体有自己的身份和生命周期吗?订单做,OrderItems不. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 调整白色图像后获得灰色边框
- ASP.NET DateTime Picker
- asp.net – 如何在gridview中只显示日期而不是datetime?
- asp.net-mvc – asp.net mvc 4 – 谁调用_ViewStart.cshtml
- asp.net – 从数据库加载时,DateTime.Kind设置为未指定,而不
- Asp.Net MiddleWare与HttpModules
- 如何用asp.net页面提供javascript?
- asp.net-mvc – ViewModel中的MVC3 RouteUrl
- asp.net-mvc – 错误2002:MetadataWorkspace中不存在指定为
- Asp.net复选框和html数据属性
推荐文章
站长推荐
- asp.net – 如何知道一个javascript文件是否已被
- Asp.net core中间件实现原理及用法解说
- ASP.NET Response.Redirect使用302而不是301
- 在ASP.NET中动态加载css
- asp.net – 可以添加一个String.contains多个值吗
- 如何调试asp.net mvc 4源代码?
- asp.net-mvc – IIS劫持CORS Preflight OPTIONS请
- 我的带有Forms身份验证的ASP.NET MVC2应用程序甚
- asp.net-mvc – 在asp .net mvc 5中预编译razor视
- asp.net – 电子邮件地址中的多个“@”符号与.ne
热点阅读