2010-09-05 16 views
4

似乎有很多偉大的對象關係映射器 - 其中有幾個我用過我自己(LLBLGen是我喜歡的一個)。有沒有人知道任何.Net工具可以幫助在DataSource不是數據庫時構建豐富的數據訪問層 - 或者更具體地說,數據源是多個高度細化的Web服務,返回大量特定於域的對象和DTO?Web服務數據源的ORM?

爲什麼我甚至想要一個數據訪問層,當我有Web服務我可以直接從BLL調用,你可能會問?那麼,除了日誌記錄,緩存和預取機制,我希望能夠翻譯所有略有不同的Web服務DTO,它們具有細微差別的命名約定,並將它們映射到我自己的,一致命名和構造的類,並具有一個通用基礎類型。沒有小任務,所以我希望有一些工具可以幫助!

感謝您的任何建議或指針!

回答

1

從技術上講,您所需要的不是ORM,因爲沒有「關係」部分。所以,最有可能的是,現有的類ORM工具不適合開箱即用。

我建議你看一下自定義代碼生成工具,例如T4(內置VS2008 +)或CodeSmith。
SubSonic 3爲ActiveRecord和存儲庫類提供了一些模板,您可以從這些模板開始,並將其更改爲使用Web服務作爲「後端」而不是數據庫。

P.S.僅供參考,here是討論ORM和類自動生成的一個線程(前段時間由我開始)。

0

根據場景的複雜程度,我會使用您提到的特性(緩存,日誌記錄等)和AutoMapper的更多特定框架來推出自己的框架。

PS。雖然可能有框架可以滿足您的需求,但當時沒有出現在我的腦海中。

0

也許我錯過了一些東西,但是不能僅僅使用Web服務的WSDL文件爲服務生成客戶端代理代碼。

+0

這不是問題,邁克。問題在於你已經生成了客戶端代理,它位於什麼位置?有沒有映射,日誌記錄,緩存等任何類似ORM的框架? – 2010-09-08 03:52:55

+0

感謝忘記的分號。你把它總結得恰到好處。 – James 2010-09-08 13:44:41

1

你所描述的不是一個ORM,所以你可能不會找到你以後的方式。

如果主要目標是在服務引用的對象模型和您自己的對象模型之間進行轉換,請參閱AutoMapper。它旨在自動完成這種類型的任務。