10
A
回答
13
是的,它可以完成,但您必須在映射配置中指定何時使用Condition()
跳過目標屬性。
下面是一個例子。考慮下面的類:
public class Source
{
public string Text { get; set; }
public bool Map { get; set; }
}
public class Destination
{
public string Text { get; set; }
}
的第一張地圖將不會覆蓋destination.Text
,但第二意願。
Mapper.CreateMap<Source, Destination>()
.ForMember(dest => dest.Text, opt => opt.Condition(src => src.Map));
var source = new Source { Text = "Do not map", Map = false };
var destination = new Destination { Text = "Leave me alone" };
Mapper.Map(source, destination);
source.Map = true;
var destination2 = new Destination { Text = "I'll be overwritten" };
Mapper.Map(source, destination2);
0
編號
這正是您從未將視圖模型映射到域模型的原因之一。域/業務模型的變化對於工具來說太重要了。
手動:
customer.LastName = viewModel.LastName
不斷變化的業務狀態是不這樣做太重要了。
3
是;我編寫了這個擴展方法來將髒模型中的髒值映射到實體框架。
public static IMappingExpression<TSource, TDestination> MapOnlyIfDirty<TSource, TDestination>(
this IMappingExpression<TSource, TDestination> map)
{
map.ForAllMembers(source =>
{
source.Condition(resolutionContext =>
{
if (resolutionContext.SourceValue == null)
return !(resolutionContext.DestinationValue == null);
return !resolutionContext.SourceValue.Equals(resolutionContext.DestinationValue);
});
});
return map;
}
例子:
Mapper.CreateMap<Model, Domain>().MapOnlyIfDirty();
+1
SourceValue不是resolutioncontext的可用成員。我錯過了什麼? – CrusherJoe 2016-09-07 06:24:08
+0
是的,這些成員「SourceValue」和「DestinationValue」也不適用於我。 – JARRRRG 2017-03-24 09:15:12
相關問題
- 1. Typescript改變了屬性類型?
- 2. Lightswitch html一個屬性(布爾)改變了另一個屬性isVisible相應地改變
- 3. 通過動態地改變屬性
- 4. 改變.innerHtml屬性
- 5. 改變屬性.Current
- 6. 改變屬性值
- 7. TypeScript地圖功能改變屬性類型
- 8. 試圖改變IQueryable集合的屬性
- 9. CSS屬性來改變圖像位置
- 10. 試圖改變 '的margin-top' 屬性
- 11. SQL JOIN爲了極大地改變了性能
- 12. JavaScript改變屬性下的屬性
- 13. 當一個屬性的屬性改變
- 14. 屬性選擇器不改變屬性
- 15. 僅在設置了其他屬性時才需要屬性
- 16. glDrawArrays修改屬性地址
- 17. 在EF 4.2代碼獲得改變的屬性列表僅
- 18. GStreamer屬性僅在本地可用
- 19. 僅更改bool Eval的虛假屬性
- 20. 僅當值更改時驗證屬性?
- 21. 製作AddOrUpdate僅更改一些屬性
- 22. 更改圖片屬性VS Alpha屬性
- 23. python對象改變屬性
- 24. jQuery改變插件屬性
- 25. 不可改變的屬性
- 26. AngularJS改變屬性值
- 27. javascript不改變html屬性
- 28. JavaScript的改變CSS屬性
- 29. Deferred.state改變CSS屬性
- 30. 改變組件屬性[VB.NET]
什麼?我認爲這正是這是什麼?請詳細說明如何將您的域對象轉換爲您的視圖模型。 – Sam 2011-04-25 18:43:15
我在上面的意思是如何讓你的編輯/視圖模型回到你的域對象? – Sam 2011-04-25 18:52:10
你是否在你的控制器中執行此操作? – Sam 2011-04-25 23:40:31