我有以下表結構。這兩張桌子有很多共同的屬性超過20我剛剛列出兩個。還有我有10個表與此類似。這就是表格在數據庫中的方式。有超過10個具有類似屬性的混凝土表格,並且不以任何方式相互連接。我使用POCO生成器從我的數據庫生成類。Automapper:如何選擇重複映射?
public class A
{
public string name {get;set;}
public string address {get;set;}
public string AId {get;set;}
}
public class B
{
public string name {get;set;}
public string address {get;set;}
public string BId {get;set;}
}
我有以下的ViewModels:
public class BaseViewModel
{
public string Fullname {get;set;}
public string Fulladdress {get;set;}
}
public class AviewModel : BaseViewModel
{
public string AId {get;set;}
}
public class BViewModel : BaseViewModel
{
public string BId {get;set;}
}
當我創建映射我不得不重複這一切,我已經創建的每個視圖模型。
config.CreateMap<A, AviewModel>()
.ForMember(dest => Fulladdress, opt => opt.MapFrom(src =>.address))
.ForMember(dest => Fullname, opt => opt.MapFrom(src =>.name)).ReverseMap();
config.CreateMap<B, BviewModel>()
.ForMember(dest => Fulladdress, opt => opt.MapFrom(src =>.address))
.ForMember(dest => Fullname, opt => opt.MapFrom(src =>.name)).ReverseMap();
是否有可能減少我可能需要做的重複映射?
爲什麼不提取和使用基類爲您的實體,類似於你正在做你的視圖模型。 –
@IvanStoev所以我使用POCO生成的類我不想手動更改類中的任何東西。所以這意味着每次有人更新.tt文件,我的結構已經消失了。 – hamadkh
其實你是對的似乎是最好的解決方案 – hamadkh