【发布时间】:2017-03-06 21:32:31
【问题描述】:
我在使用自动映射器将我的对象映射到视图并返回到原始对象时遇到问题。
我有以下结构。
public class TModel
{
public int TID{get;set;}
public string Name{get;set;}
public string Location{get;set;}
public string address{get;set;}
}
public class UiModel
{
public string Name{get;set;}
public string Location{get;set;}
}
在 AutoMapperConfiguration 类中,我初始化了我的自动映射器,如下所示:
cfg.CreateMap < TModel, UiModel >();
cfg.CreateMap < UiModel,TModel > ();
我的适配器从 web 服务接收数据,这些数据我将存储在 TModel 项目列表中 视图只显示 UiModel 的项目,我将做以下映射并将数据返回到视图
var list = listOfT.Select(tmodel=> Mapper.Map<UiModel>(tmodel)).ToList();
完成所有更改后,我将列表返回给不同的适配器以将数据保存到数据库中
在这个'sqlAdapter'中,我将TModel类型的项目映射回来,因为我还想要我的数据库中的地址属性
var list = listOfUi.Select(uimodel=> Mapper.Map<TModel>(uimodel)).ToList();
但现在我丢失了地址属性的数据。 我还必须通过 TModel 的原始列表吗?...
【问题讨论】:
-
UiModel类没有Address属性。因此,当您从TModel转换为UiModel时,它无处可用。这就是为什么当您将UiModel转换回TModel时,您没有获得Address属性。
标签: c# automapper