- 浏览: 64870 次
- 性别:
- 来自: 北京
最新评论
-
bangjun:
楼主辛苦了,非常受用
使用AutoMapper实现Dto和Model的自由转换(下) -
zz8ss5ww6:
不好意思忘记密码了,这才找回的这个账户。希望这个小系列能有所帮 ...
使用AutoMapper实现Dto和Model的自由转换(下) -
angel6278:
讲解很详细,代码很完备想了解下这个工具,找来找去都没找到好的资 ...
使用AutoMapper实现Dto和Model的自由转换(下)
文章列表
书接上文。在上一篇文章中我们讨论了使用AutoMapper实现类型间1-1映射的两种方式——Convention和Configuration,知道了如何进行简单的OO Mapping。在这个系列的最后一篇文章我想基于我们的需求讨论一些中级别的话题,包括:如何实现类型体型之间的映射,以及如何为两个类型实现多个映射规则。
【四】将一个类型映射为类型体系
先回顾一下我们的Dto和Model。我们有BookDto,我们有Author,每个Author有自己的ContactInfo。现在提一个问题:如何从BookDto得到第一个作者的Author对象呢?答案即简单,又不简单。
最简单的做法是,使用前面提到 ...
注:本系列文章的代码可以在这里下载。
在上一篇文章中我们构造出了完整的应用场景,包括我们的Model、Dto以及它们之间的转换规则。下面就可以卷起袖子,开始我们的AutoMapper之旅了。
【二】以Convention方式实现零配置的对象映射
我们的AddressDto和Address结构完全一致,且字段名也完全相同。对于这样的类型转换,AutoMapper为我们提供了Convention,正如它的官网上所说的:
引用AutoMapper uses a convention-based matching algorithm to match up source to destination ...
注:本系列文章的代码可以在这里下载。
在实际的软件开发项目中,我们的“业务逻辑”常常需要我们对同样的数据进行各种变换。例如,一个Web应用通过前端收集用户的输入成为Dto,然后将Dto转换成领域模型并持久化到数据 ...
使用XmlSerializer可以方便的将对象序列化为xml,实现应用之间的数据交互。但是XmlSerializer却不能很好地序列化类型中的可空字段。
例如,有如下定义的类Person:
[Serializable]
[XmlRoot(ElementName = "Person")]
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
...
项目中一直使用”no sql”的方式将entity序列化成xml格式存储在sql server数据库表的xml字段中,最近终于要对数据进行迁移了,需要将数据迁移回关系型格式,因此也经历了一次比较有趣而又复杂的xml查询。
具体问题是这样的。数据库中有一张EntityState表用于存储应用中所有被xml序列化的entity,表结构如下图所示:
其中的Xml字段存储了entity序列化之后的xml内容,Tag字段为entity的类型码,是由entity类型经过哈希之后计算出来的。
有一个名为CalendarMonth的Entity,存储了用户一个月每天的活动信息。一个具体的CalendarMon ...
最近在项目中使用Castle ActiveRecord,在使用HasMany定义的关联时出现了无法级联删除的问题。
我在项目中定义了两个实体类FeedEntry和FeedEntryLink如下:
[ActiveRecord(Table = "FeedEntries")]
public class FeedEntry : ActiveRecordBase<Fee ...