2

在有关该主题的许多帖子中,我遇到了无法回答我的问题的非常简单的示例。

假设有一个文档表和用户表。在用 ADO.NET 编写的 DAL 中,我有一种方法可以根据某些标准重试所有文档。现在我的 UI 我有一个案例,我需要显示这个列表以及创建者的名字。

据了解,我已经使用 DAL containsig JOIN 语句中的一种方法完成了它。但是,每次我有一个如此复杂的方法,我必须对一些没有将 1:1 标记为 DB 的对象进行自定义映射。

它应该放在另一层吗?如果是这样,那么我将不得不从连接查询中重新定位,以通过结果进行迭代并查询每个文档作者。. . 这没有意义......(性能)

这种情况的最佳方法是什么?

4

2 回答 2

1

对于您的用户界面,我的建议是让一个 dto(那些 mvp/mvc 人的视图模型)保存用户的数据和相应的文档列表。

自定义映射将始终存在,因此我建议您在此处查看 Automapper 以减轻这些映射的痛苦。

于 2010-06-08T11:43:29.050 回答
0

我过去在创建自己的自定义数据访问层时遇到了同样的事情。您希望您的对象一对一地映射到您的数据库,但很多时候您只需要编写一个自定义函数来检索内部连接数据。我不会将这些自定义操作放入它们自己的层中。

有时,我所做的是创建一个通用类,负责检索网格、组合框等的数据,这些数据连接了来自多个表的信息。此类将返回包含检索结果的自定义对象。如果您对为您执行自动自定义映射的工具不满意,我建议您创建自己的自动映射类构建器实用程序。

只要您将应用程序拆分为数据访问、业务和 UI 层,我认为您正朝着正确的方向前进。

于 2010-06-08T14:15:28.697 回答