关于AutoMApping 实体映射
安裝AutoMapping包
把訂單實體映射成訂單DTO實體
.ReverseMap()加上這個方法后 下面自定義 映射規(guī)則 第一個就是來源對象 第二個就是目標(biāo)對象
https://www.cnblogs.com/fred-bao/p/5700776.html
ABP中 映射三種寫法
1.第一種寫法 直接在DTO上面寫AutoMapper
[AutoMapTo]把當(dāng)前類映射為Person
[AutoMapForm]把Person映射為當(dāng)前類
2.第二種寫法 創(chuàng)建映射類
在Module中注冊
3.映射類繼承Profile
相同類型對象進(jìn)行映射
使用MapTo() 賦值不會報錯 但是映射不成功 只能用MapTo<>()進(jìn)行類型轉(zhuǎn)換; 相同類型使用MapTo<>()進(jìn)行映射 映射完成后 兩個對象為同一個對象實例
var aa = new Customer() { Name="張三",CustomerNumber="0001",Phone="150"};
var cc = new Customer() { Name="王五"};
aa.MapTo(cc);
var dd = aa.MapTo<Customer>();
CreateMap<OrderInput, SalesOrder>()
.ForMember(dest => dest.Lines, opt => opt.Ignore());
把OrderInput對象映射為SalesOrder 對象的時候 SalesOrder 中的Lines屬性不會被映射 Lines必須要是一個對象 如果只是一個屬性就會報錯
******************************
統(tǒng)一映射
創(chuàng)建映射類 有N個
public class AccountProfile : Profile, IProfile
{
public AccountProfile()
{
CreateMap<Account, AccountDto>();
}
}
找到Iprofile接口所在的程序集
找到這個程序集中所有繼承IProfile的類
統(tǒng)一注入映射規(guī)則
var allTypes = typeof(IProfile)
.Assembly
.GetTypes()
.Where(type => type.IsClass)
.Where(type => typeof(IProfile).GetTypeInfo().IsAssignableFrom(type))
.ToList();
Mapper.Initialize(y =>
{
foreach (var type in allTypes)
{
y.AddProfiles(type);
}
});
總結(jié)
以上是生活随笔為你收集整理的关于AutoMApping 实体映射的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BugFree快速使用入门
- 下一篇: 涨姿势系列之——内核环境下花式获得CSR