使用BaseViewModel并继承Model的ViewModel

本文关键字:ViewModel Model 继承 BaseViewModel 使用 | 更新日期: 2023-09-27 18:03:04

我有n层应用程序(实体层-业务层- Web层)。我喜欢使用ViewModels(在Web层)有下拉列表等丰富的基本业务对象(实体层)到UI。为此,我使用一个BaseViewModel (Web Layer)在每个ViewModel有下拉或默认值,它允许我只是调用方法来填充数据,非常有用。

现在我想找到一个聪明的方法来避免重新键入所有实体层属性到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,但从实体项目中引用WEB真的不干净,这让我觉得不舒服。

Thanks to help me:-)

使用BaseViewModel并继承Model的ViewModel

您可以使用AutoMapper http://automapper.org/或类似于ExpressionMapper http://www.codeproject.com/Tips/1009198/Expressmapper-The-New-NET-Mapper