1

我首先在我的解决方案中使用 EF DB。

我有BLDALCommon图层。

BL包含操纵业务模型的经理

Dal进行 CRUD 操作

后者保留所有其他层使用的所有 DTO 和接口。

每个项目都引用该Common项目。

现在我想创建IDal一个接口,它返回我的Business model对象​​列表(EF 类型)

问题是 EF 类型是在 Dal 项目中定义的,并且这个参考 Common\IDal

因此 IDal 由于循环引用而不能引用 Dal。

我想将 EF 对象映射到 BL 对象,但是我怎样才能使它高效呢?

我有很多组合的Business model对象。我不想复制它们。

正确的?

4

1 回答 1

-1

我认为 IDAL 应该是 Common 或 DAL 本身。

每当您想引用一个项目时,都无需创建许多项目。

如果需要,您可以更改存储库的可见性,internal以便其他项目能够仅使用public接口。

对于更多替代和不同的实现,我认为NSK Starter Kit将是一个很好的参考。

更新1:

结构应如下所示:

  • 项目的核心部分几乎包含了你所有的纯业务Domain
  • 下面有一个Data Access参考Domain
  • 会有一个Data Access Common包含Data Access Interfaces
  • 有一个Service项目可能包含更复杂的操作,这些操作涉及多个聚合对象,它引用DomainData Access Interface
  • 有一个Service Interface包含Service Interface and DTOs
  • 并且有一个UI引用Service Interface和可能Domain

甚至你也可以看看我自己在Cedar制作的结构

于 2012-11-29T14:52:09.963 回答