2010-06-08 55 views
2

在很多關於這個主題的帖子中,我遇到了很多簡單的例子,不能回答我的問題。解耦到DAL和BLL中 - 我的顧慮

假設有一個文檔表和用戶表。在用ADO.NET編寫的DAL中,我有一個方法可以針對某些條件重試所有文檔。現在我用戶界面我有一個案例,我需要顯示這個列表以及創建者的名字。

知道我在DAL withig JOIN語句中使用了一種方法。 然而,eveytime我有這樣一個複雜的方法,我必須做一些對象的自定義映射,它不會將1:1標記爲數據庫。

是否應該放入另一層?如果是這樣,那麼我將不得不放棄連接查詢來遍歷結果並查詢每個文檔作者。 。 。這沒有什麼意義...(性能)

這種情況下最好的方法是什麼?

回答

1

對於你的UI我的建議是有一個dto(對於那些mvp/mvc人的視圖模型)保存用戶的數據和相應的文檔列表。

自定義映射將始終存在,所以我建議您在這裏查看Automapper以緩解這些映射問題。

0

我在創建自己的自定義數據訪問層時遇到了同樣的事情。你想讓你的對象一對一地映射到你的數據庫,但很多時候你只需要寫一個自定義函數來檢索內部連接數據。我不會把這些自定義操作放到它們自己的層中。

有時,我所做的是創建了一個通用類,它負責檢索網格,組合框等數據,這些數據加入了許多表中的信息。這個類將返回包含檢索結果的自定義對象。我對使用自動自定義映射的工具不滿意,我建議創建自己的自動映射類生成器實用程序。

只要您將應用分成數據訪問,業務和UI層,我認爲您的方向是正確的。