【发布时间】:2016-04-19 00:25:06
【问题描述】:
我正在阅读 ASP.net Web API 2 书 (Git Hub)
我正在尝试使用 Fluent NHibernate 和 Automapper 连接到数据库。这本书使用了一个新的数据库,而我的数据库是预先存在的,不一定受良好实践的控制。
在加入表格等之前,我希望能够获取人员列表并通过 API 添加新人员。唯一的问题是我想返回实际表格的更少属性并创建一个新人,甚至比用于显示新人的模型还要少。我无法理解自动映射器的流程。
一个示例表可能是
<pre>Person Entity
-person_id(int)
-person_name(varchar(100))
-person_location(int)
-person_phone(varchar(10))
-person_address(varchar(30))
</pre>
我要使用的模型包括实际表中项目的子集。例如,也许:
<pre>Person Model
-person_id(int)
-person_name(varchar(100)
-person_location(int)</pre>
还有一个 newPerson 模型
<pre>NewPerson Model
-Name
-location</pre>
我有一个具有所有人员属性的实体,例如
public virtual int person_id {get;set;}
但我有一个具有子集属性的模型,例如
public long person_id {get; set;}
在自动映射配置文件中,我有一个类 NewPersonToPersonEntityAutoMapperTypeConfigurator,我还有另一个类 PersonEntityToPersonAutoMapperTypeConfigurator
我对自动映射器的工作方式感到困惑。 AutoMapper 文件 NewPersonToPersonEntityAutoMapperTypeConfigurator 是否应该使用类似
Mapper.CreateMap<NewPerson, PersonEntity>
.ForMember(opt => opt.person_id, x => x.Ignore())
...
.ForMember(opt => opt.person_address(varchar(30)))
虽然 PersonEntityToPersonAutoMapperTypeConfigurator 使用类似
Mapper.CreateMap<PersonEntity, PersonModel>
谁能给我看一个像这样的简单场景的好例子,比如 automapper 和一个带有额外未使用属性的预先存在的表,或者描述 Automapper 应该做什么,或者我是否走在正确的轨道上?
【问题讨论】:
标签: sql-server asp.net-mvc poco domain-model