簡體   English   中英

將dto映射到實體? 也許自動映射? 屬性應該匹配嗎? LINQ選擇

[英]mapping dto to entities? maybe automapper? should properties match? linq selection

我正在嘗試使用所謂的基本linq-to-sql創建LINQ-to-SQL解決方案。 它不是通過EF之類的完整的ORM解決方案。 現在的重點是利用LINQ的功能並減少存儲過程(以及其他一些好處)。

之前,我已經與DTO和實體進行過一些合作……但這也是一個自定義實現。 在該實現中,使用了自動映射器。 我知道當實體屬性與DTO屬性匹配時,自動映射器“效果最佳”。 但是,如果他們不這樣做怎么辦? 您可以自定義方式配置它嗎?

我想一個更大的問題是……這是否是無法在查詢中實例化“ LINQ映射”“實體”這一事實的真正解決方案? 為了清楚起見,您不能使用linq並選擇一個新的“實體”,您必須選擇一個未映射的DTO。 我最終想要做的是避免在給定查詢中將實體“映射”到DTO。 我想這沒什么大不了的,但是像automapper這樣的東西可以解決這個問題嗎?

我不確定您要問什么,但:

我知道當實體屬性與DTO屬性匹配時,自動映射器“效果最佳”。 但是,如果他們不這樣做怎么辦? 您可以自定義方式配置它嗎?

如果您問的是我的想法,那么您應該研究.ForMember並重寫Convert函數。 在Wiki上都有這兩種示例:.ForMember: https : //github.com/AutoMapper/AutoMapper/wiki/Projection轉換: https : //github.com/AutoMapper/AutoMapper/wiki/Custom-type-converters

當dto和實體匹配時,Automapper的確是“最佳”工作,因為在兩者之間設置映射非常容易,因為它們的屬性名稱和類型匹配。 當它們不匹配時,您需要使用.ForMember手動選擇屬性,或者通過重寫Convert函數手動進行整個轉換。

我希望這會有所幫助。 如果不是,或者您需要更多信息,請在下面彈出評論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM