[英]c# auto mapper how to add auto-increment property to destination projection?
我們有源對象“StockBase”和目標對象“StockDTO”。 在將“StockBase”映射到“StockDTO”時,我們希望添加一個屬性,該屬性將提供集合索引,即在“StockDTO”對象中自動遞增 1。
例如,“StockBase”具有名稱、所有者、顏色、保修等屬性。
雖然“StockDTO”具有 Name、Owner + 等屬性,但我們希望添加 Auto-increment-id,它可以為我們提供該 Stock 在集合中的排名,從 1 開始並以 1 遞增。
我讀了這個,但是在將列表映射到列表而不在 aftermap 中復制內容時,有沒有更好的方法可以做到這一點?
我能想到的防止多次迭代集合的唯一方法是這樣的:
public class A { }
public class B { public int Index { get;set; } }
var colA = new List<A>();
var colB = colA.Select((a, ix) =>
{
var b = Mapper.Map<B>(a);
b.Index = ix + 1;
return b;
});
因此,代碼僅在集合中迭代一次,並使用Mapper
及其映射配置文件,此外在投影期間分配自動遞增屬性。
注意:通常,您不會使用靜態Mapper
類,而是使用注入的IMapper
實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.