2

我们有一个经典的 3 层架构应用程序。现在我们面临一个小问题,我们不知道处理它的最佳方法。

在最后一层(数据库层)中,我们有一个 POCO 类,它填充了来自数据库的数据。在顶层,我们有一个 MVC3 asp.net Web 应用程序。如果 MVC 应用程序可以读取 POCO 类,它会运行得最好。

但是由于 GUI 层不能直接访问数据库层,所以它不能得到完全相同的类。

从最后一层到顶层获得 POCO 类的最佳方法是什么?

4

2 回答 2

2

实际问题是您的实体不应在数据层中定义。数据层,以及应用程序中的任何其他层,有一天可能会被完全重写,并且您不希望实体本身与这些层中的任何层相关联。

换句话说,在一个单独的项目中定义您的实体,然后从所有其他项目中引用它:

- Entities

- Data access layer
  + references Entities

- Business layer
  + references DAL
  + references Entities

- Presentation layer
  + references BL
  + references Entities

存储库接口也是如此:如果您使用存储库模式来抽象您的数据访问,Entities则项目应该包含所有存储库接口,然后可以通过特定的 DAL 选择来实现。

于 2012-06-27T07:56:44.817 回答
1

您可以创建从所有不同层项目引用的 DTO 项目。通过这种方式,您可以在应用程序的所有层之间共享 DTO POCO。

于 2012-06-27T07:48:03.170 回答