2010-11-05 94 views
0

如果我們正確使用automapper,並且我們的架構是有效的,那麼我有一點道德上的兩難困境。我是一個相對較新的開發者,但這只是我感覺不對。我的同事是automapper的忠實粉絲(可以理解,所以它很搖滾),但我的問題是,我們僅僅是爲了它而使用它,並試圖在一個模式中敲喇叭只是因爲「這是如何完成的」。基本上我們正在構建一個內部應用程序的網絡擴展,它有一個api和一個討厭的Sql數據庫。我們創建了許多sql視圖來提取每個屏幕所需的數據。然後使用linq2sql和一個存儲庫模式調用視圖,然後將數據傳遞到服務層,該服務層自動生成數據,就像生成Viewmodel對象以傳遞給視圖一樣。我的問題是,我們真的需要autmapper嗎?當然我們的數據已經處於我們可以查看的階段..另外一個參數是讓我們使用視圖模型元數據進行控制,但肯定可以通過linq2sql上的好友類來完成實體?需要關於AutoMapper的使用說明

我是否錯過了一些東西,或者這看起來並不複雜嗎?此外,我一直在尋找使用teleriks控件的網格,但與automapper站在我的數據和輸出之間我不確定要處理這個?

感謝您的任何輸入;)

+0

什麼是用戶界面?你在網頁上顯示結果嗎?通過WCF拍攝?這些模型是否有額外的邏輯,不能被綁定到sql生成的對象的linq中? – Will 2010-11-05 15:50:41

+0

我們在一個MVC應用程序中展示了大量的部分等等。當時模型沒有太多編輯模型可能具有的任何邏輯,但這些僅用於視圖屏幕。該邏輯被放置在sql視圖中。 – 2010-11-05 15:57:27

回答

1

我已經建立了一箇中等規模的ASP.NET MVC Web應用程序,聽起來像它的結構非常相似,你的描述。我們發現將我們的LINQ to SQL對象作爲視圖模型直接暴露給我們的視圖,這在項目中造成了很大的摩擦,因爲我們的許多視圖要麼合成了多個LINQ to SQL對象,要麼僅僅依賴於LINQ to SQL對象數據的一個子集。

在項目的後期,我們開始使用AutoMapper來映射LINQ to SQL對象來查看模型(並返回),它絕對允許我們的系統更加靈活。所以我會推薦它。

+0

很高興聽到這個消息,你是怎麼用automapper處理大量數據/分頁等的?這是我最大的問題。 – 2010-11-05 16:10:28

+1

我們實際上已經將頁面索引和頁面大小傳遞到了我們可以使用Skip()的數據層,並使用IQueryable上的()來檢索分頁結果。 – 2010-11-05 17:32:49