我来自java背景。从3周开始编写REST Web服务的编码。我一直在阅读很多关于Web API的MVVM设计模式。每个博客和每个stackoverflow问题都解释了View Model也是一个映射前端/客户端的模型。但是,他们没有谈论将Domain模型与视图模型进行映射。
我试图了解使用视图模型映射域模型。请花时间详细解释。
查看:
示例视图如下所示
{
"userid":"nvkjnvn",
"applicationid":"kjcnasdkjcnknc",
"settingkey":"mykey",
"settingvalue":"30",
"setting label":"mylabel",
"isactive":"yes",
"updatedon":"2017-06-22"
}
模特课程:
public class Setting
{
public string settingid { get; set; }
public string settingkey { get; set; }
public string settingValue { get; set; }
public string isActive { get; set; }
public string updatedOn { get; set; }
}
public class Application
{
public string app_id { get; set; }
public string name { get; set; }
public List<Setting> settings { get; set; }
}
public class UserSetting
{
public string userid { get; set; }
public List<Application> applications { get; set; }
}
模型视图:
public class UserSettingModelView
{
public string UserID{get; set;}
public string ApplicationID{get; set;}
public string SettingKey{get; set;}
public string SettingValue{get; set;}
public string Group{get; set;}
public string SettingLabel{get; set;}
public bool IsActive{get; set;}
public Date UpdatedOn{get; set;}
}
如何使用域模型映射模型视图。
答案 0 :(得分:0)
这应该只是将多个域类的属性映射到一个视图模型类。请参阅此问题:Should I transform Entity (Persistent) objects to DTO objects?
在这种情况下,AutoMapper是很棒的工具。您的属性名称不完全匹配,因此您可能需要在AutoMapper中进行大量配置。
其他替代方法是手动映射实例。
userSettingModelView.UserID = userSetting.userid;
userSettingModelView.ApplicationID = application.app_id;
userSettingModelView.SettingKey = ...........
userSettingModelView.SettingValue = ...........
userSettingModelView.Group = ...........
userSettingModelView.SettingLabel = ...........
userSettingModelView.IsActive = ...........
userSettingModelView.UpdatedOn = ...........