我有一個域模型的服務,我想向客戶展示數據。服務具有典型的體系結構:數據庫,ORM(EF),具有域模型的業務層。WCF DataServices&映射DTO
我想使用WCF DataServices向客戶端公開數據,但我無法將數據對象從域模型發送到客戶端。我將使用DTO與客戶進行交互,並且我有數據對象映射。
DataServices有反射提供程序,在這種情況下似乎很好(讓我們考慮只讀場景)。但反思提供者要求IQueryable<dto>
屬性被暴露。這就是問題所在。所以我看到以下方法來解決它:
- 加載所有域對象,將它們映射到dtos並返回結果dtos。真的很糟糕的方法,如果有很多域對象存在。
- 創建一個「linq2dto」提供程序並生成動態通訊錄「linq2EF」查詢,在查詢實體化處從數據庫獲取數據對象並執行映射。它聽起來不錯,但正如我所看到的,這是一項複雜的任務。
所以,夥計們,我需要幫助。我不想寫(並支持!)新的LINQ提供程序。可以在哪裏有一些「通用linq2anyware」實現,我可以使用?
另一方面,我真的不能將數據對象暴露給客戶端並使用DataServices EF提供程序。是否有一些簡單的方法來實現這種映射?
首先問明顯的問題:你真的需要DTO嗎?先用EF代碼不足以滿足您的需求? – 2012-08-10 16:23:37