[英]Mapping DTO to Entity
我正在嘗試將DTO映射到實體。 當我在網上搜索時,我注意到很多對AutoMapper的引用,以及關於它不是一個好方法的反饋。
此外,我找不到任何新的日期來源,一個抱怨沒有“新”來源的問題是4歲。
我找到的其中一個看起來非常有前途的來源是https://rogerjohansson.blog/2013/12/01/why-mapping-dtos-to-entities-using-automapper-and-entityframework-is-horrible/
我也無法讓它發揮作用。
所以,基本情況就是這樣。
我正在嘗試使用wcf對訂單進行集成。 (另一個案例)
我有一個訂單dto和相關的dto是訂單,客戶,客戶地址或者deradress。 稍后會有更多內容。
由於這些主要是數據庫表,因此主“表”是Order。 它充當標題,訂單和其他自我解釋。 我相信每個人之前都會遇到這樣的事情。
我根據他們的對手實體創建了Dto。
我被告知要做的是;
a)轉換(或術語,映射?)這些DTO到實體
b)將實體添加到dbcontext和savechanges。
那么,有人能指出我在解決這種情況方面的良好方向嗎?
我們有一個類似的項目。 我們使用MVC中的Model類而不是WCF,但最終是同一個想法:從一個對象轉換為另一個對象。 我不能不同意AutoMapper的更多信息。 起初,我們對它的效率有同樣的懷疑,但最后我們決定嘗試一下。 然后,我們遇到了文章指出的一些問題(特別是元素集合)。 幸運的是,AutoMapper為您提供了足夠的靈活性來處理這些特殊的映射條件。
我認為AutoMapper很容易學習基礎知識,因此您可以在幾分鍾內映射您的對象。 此外,它還為您提供了所有特殊考慮因素的工具。
您發布的文章解釋了“實體框架不喜歡AutoMapper”,但它更多地與您如何遵循EF和AutoMapper的規則相關。 實體框架是一個巨大的ORM,因此,您需要遵循一些規則(在某些情況下非常嚴格的規則)。 當然,使用帶有基本示例的AutoMapper會破壞一些規則,但是一旦開始習慣它,就很容易遵循規則。
總結一下:AutoMapper為您節省了大量時間,您可以投資定制一些配置。 如果沒有,你將不得不使用linq投影,這在大多數情況下將花費你更多的時間。 例如:通過檢測基於Ids的添加/編輯/刪除來解決收集問題,也可以通過自定義映射器使用AutoMapper進行處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.