我有以下表结构。这两张桌子有很多共同的属性超过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