我在我的解决方案中首先使用EF DB。
我有BL
,DAL
和Common
图层。
BL
包含操纵商业模式的经理
Dal
执行CRUD操作
后者保留所有其他层消耗的所有DTO和接口。
每个项目都引用Common
项目。
现在我想创建IDal
接口,它返回我的Business model
对象列表(EF类型)
事实是EF类型是在Dal项目中定义的,这个引用是Common \ IDal
因此,由于循环引用,IDal无法引用Dal。
我想将EF对象映射到BL对象,但是我怎样才能使它有效?
我有很多组成Business model
个对象。我不想复制它们。
正确?
答案 0 :(得分:-1)
我认为IDAL应该是Common或DAL本身。
无论何时想要引用项目,都无需创建多个项目。
如果必须internal
,则可以更改存储库的可见性,以便其他项目只能使用public
接口。
对于更多替代和不同的实现,我认为NSK Starter Kit将是一个非常好的参考。
更新1:
结构应如下:
Domain
。 Data Access
引用Domain
Data Access Common
,其中包含Data Access Interfaces
Service
项目可能包含更复杂的操作,涉及更多的一个聚合对象,它引用了Domain
和Data Access Interface
Service Interface
,其中包含Service Interface and DTO
s UI
引用了Service Interface
,可能还有Domain
。即使您可以在Cedar
查看我自己制作的结构