我有n层应用程序(实体层 - 业务层 - Web层)。我喜欢使用ViewModels(在Web层中)将下拉列表等用于基本业务对象(实体层)到UI。为此,我在每个具有下拉列表或默认值的ViewModel中使用BaseViewModel(Web Layer),它允许我只调用方法来填充数据,非常有用。
现在我想找到一种智能方法来避免将所有实体层属性重新键入VM。
目前,这是我做的一个例子:
型号:
Class CustomObjectModel {
public int id {get;set;}
public string name {get;set;}
public string description {get;set;}
}
VM:
public Class CustomObjectViewModel : BaseViewModel {
public int id {get;set;}
public string name {get;set;}
public string description {get;set;}
public List<possibleNames> string {get;set;}
}
BaseVM:
public Class BaseViewModel{
public List<string> FillNames(){...}
public List<string> DefaultName(){...}
}
而且我不想将模型属性重新键入VM ...如何?
我可以使用继承:CustomObjectModel继承了BaseViewModel,然后CustomObjectViewModel继承了CustomObjectModel,但是从Entites项目中引用WEB实际上并不干净,这让我感到不舒服。
感谢帮助我: - )
答案 0 :(得分:0)
您可以使用AutoMapper http://automapper.org/或类似ExpressionMapper http://www.codeproject.com/Tips/1009198/Expressmapper-The-New-NET-Mapper
之类的东西