解耦到DAL和BLL - 我的担忧

时间:2010-06-08 11:37:24

标签: c# architecture data-access-layer bll

在很多关于这个主题的帖子中,我遇到了一些非常简单的例子,它们没有回答我的问题。

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

直到知道我在DAL containsig JOIN语句中使用了一个方法。 然而eveytime我有这么复杂的方法我必须自定义映射到一些不标记1:1到DB的对象。

是否应该放入另一层?如果是这样,那么我将不得不从连接查询中重新开始迭代结果并查询每个文档作者。 。 。哪个没有意义......(表演)

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

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