这是我的问题:我首先使用EntityFramework 4.1模型,我有两个程序集(Domain和Store)
该域包含我的所有业务逻辑 Store管理所有持久性逻辑到数据库
所以我不想在我的域中进行任何实体框架查询。我使用存储库来公开商店。 Hic!我的edmx在商店中,所以TT也生成我的商务课程。由于我想在程序集的域中使用业务类,因此我将TT移动到域中并更改了代码生成器的命名空间。我必须引用我的商店来了解我的Domain类(逻辑!)。但是如何在不创建循环引用的情况下从我的域调用我的存储库...?
要点:
答案 0 :(得分:4)
您的域层中需要存储库接口。然后,存储库实现位于您的基础架构层中,并使用EF。这样,您的基础架构层依赖于您的域层(通过存储库接口的实现以及域实体的创建/检索),但域不依赖于基础架构层。
Jeffrey Palermo's articles on the "onion architecture"中给出了对这种一般架构模式的一个很好的解释。