实体框架和 DDD

发布于 2024-12-06 16:42:17 字数 368 浏览 0 评论 0原文

这是我的问题:我首先使用EntityFramework 4.1模型,并且我有两个程序集(域和存储)

域包含我所有的业务逻辑 存储管理数据库的所有持久性逻辑

,因此我不希望在我的域中进行任何实体框架查询。我使用存储库来公开商店。希克!我的 edmx 在商店中,因此 TT 也生成我的商务课程。由于我希望我的业务类位于程序集的 Domain 中,因此我将 TT 移至 Domain 中并更改代码生成器的命名空间。我必须参考我的商店来了解我的域类(逻辑!)。但是如何从我的域调用我的存储库而不创建循环引用......?

总结:

  • My Store参考Domain来了解业务类。
  • My Domain 参考存储以了解存储库

Here's my problem: I use EntityFramework 4.1 Model first, and I have two assembly (Domain and Store)

The domain contains all my business logic
Store manages all persistence logic to the database

So I do not want any entity framework query in my Domain. I use a repository to expose the Store. The Hic! My edmx is in the Store, so the TT that generates my business classes too. As I want my business classes in the assembly's Domain , I moved the TT into the Domain and change the namespace of code generator. I must refer my Store to know my Domain classes (logic !). But how to call my repository from my Domain without creating a circular reference ...?

Summary:

  • My Store reference Domain to know the business classes.
  • My Domain reference Store to know the repository

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

单挑你×的.吻 2024-12-13 16:42:17

您的域层需要一个存储库接口。然后存储库实现位于您的基础设施层,并使用 EF。这样,您的基础设施层取决于域层(通过存储库接口的实现以及域实体的创建/检索),但域不依赖于基础设施层。

Jeffrey Palermo 关于“onion”的文章对这种一般架构模式进行了很好的解释。架构”

You need a repository interface in your domain layer. Then the repository implementation is in your infrastructure layer, and uses EF. This way your infrastructure layer depends on your domain layer (via the implementation of the repository interface, and the creation/retrieval of domain entities), but the domain does not depend on the infrastructure layer.

A good explanation of this general architectural pattern is given in Jeffrey Palermo's articles on the "onion architecture".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文