2010-06-08 56 views
2

在很多关于这个主题的帖子中,我遇到了很多简单的例子,不能回答我的问题。解耦到DAL和BLL中 - 我的顾虑

假设有一个文档表和用户表。在用ADO.NET编写的DAL中,我有一个方法可以针对某些条件重试所有文档。现在我用户界面我有一个案例,我需要显示这个列表以及创建者的名字。

知道我在DAL withig JOIN语句中使用了一种方法。 然而,eveytime我有这样一个复杂的方法,我必须做一些对象的自定义映射,它不会将1:1标记为数据库。

是否应该放入另一层?如果是这样,那么我将不得不放弃连接查询来遍历结果并查询每个文档作者。 。 。这没有什么意义...(性能)

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

回答

1

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

自定义映射将始终存在,所以我建议您在这里查看Automapper以缓解这些映射问题。

0

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

有时,我所做的是创建了一个通用类,它负责检索网格,组合框等数据,这些数据加入了许多表中的信息。这个类将返回包含检索结果的自定义对象。我对使用自动自定义映射的工具不满意,我建议创建自己的自动映射类生成器实用程序。

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