Skip to content

Latest commit

 

History

History
130 lines (114 loc) · 9.43 KB

References.md

File metadata and controls

130 lines (114 loc) · 9.43 KB

References

基本用法

方法 说明 链接
src.Adapt<Dest>() 映射到新类型 基本用法
src.Adapt(dest) 映射到现有对象 基本用法
query.ProjectToType<Dest>() 映射 IQueryable
约定和数据类型支持 数据类型

Mapper 实例(用于依赖注入)

方法 说明 链接
IMapper mapper = new Mapper() 创建映射器实例 映射器
mapper.Map<Dest>(src) 映射到新类型
mapper.Map(src, dest) 映射到现有对象

Builder (用于复杂映射)

方法 说明 链接
src.BuildAdapter()
mapper.From(src)
创建 builder 映射器
.ForkConfig(config => ...) 内联配置 映射配置位置
.AddParameters(name, value) 传递动态值 设置值
.AdaptToType<Dest>() 映射到新类型
.AdaptTo(dest) 映射到现有对象
.CreateMapExpression<Dest>() 获取映射表达式树对象
.CreateMapToTargetExpression<Dest>() 获取映射到现有对象的表达式树对象
.CreateProjectionExpression<Dest>() 获取映射 IQueryable 的表达式树对象

配置

方法 说明 链接
TypeAdapterConfig.GlobalSettings 全局配置 映射配置
var config = new TypeAdapterConfig() 创建新的配置实例 映射配置实例
src.Adapt<Dest>(config) 映射到新类型并指定配置
new Mapper(config) 指定映射器的配置
src.BuildAdapter(config) 指定Builder的配置
config.RequireDestinationMemberSource 验证所有属性的映射 映射配置验证
config.RequireExplicitMapping 是否开启强制显示映射配置 映射配置验证
config.AllowImplicitDestinationInheritance 使用基于 目标类 的配置 映射配置继承
config.AllowImplicitSourceInheritance 使用基于 源类 的配置 映射配置继承
config.SelfContainedCodeGeneration 1 个方法中生成所有嵌套映射 TextTemplate
config.Compile() 验证映射配置并缓存映射 映射配置验证
config.CompileProjection() 验证 IQueryable 映射配置并缓存映射
config.Clone() 复制配置 映射配置位置
config.Fork(forked => ...) 内联配置 映射配置位置

扫描配置

方法 说明 链接
IRegister 映射配置扫描接口 映射配置位置
config.Scan(...assemblies) 扫描程序集中的映射配置 映射配置位置
config.Apply(...registers) 应用 映射配置 映射配置位置

定义映射配置

方法 说明 链接
config.Default 配置应用于所有类型映射 映射配置
TypeAdapterConfig<Src, Dest>.NewConfig()
config.NewConfig<Src, Dest>()
创建应用于特定类型映射的配置 映射配置
TypeAdapterConfig<Src, Dest>.ForType()
config.ForType<Src, Dest>()
配置应用于特定类型映射 映射配置
config.ForType(typeof(GenericPoco<>),typeof(GenericDto<>)) 配置应用于泛型类型映射 映射配置
config.When((src, dest, mapType) => ...) 配置根据条件进行的类型映射 映射配置
config.ForDestinationType<Dest>() 配置应用于特定目标类型 映射配置
嵌套映射的配置 嵌套映射

配置

方法 说明 支持 IQueryable 链接
AddDestinationTransform 清除特定类型的数据 x 设置值
BeforeMapping 在映射开始之前的步骤 映射前&映射后
AfterMapping 映射完成之后的步骤 映射前&映射后
AvoidInlineMapping 对于大型类型映射,跳过内联处理 对象引用
ConstructUsing 定义如何创建对象 x 构造函数
EnableNonPublicMembers 映射非公开成员 映射非公开成员
EnumMappingStrategy 选择按值还是按名称映射枚举 数据类型
Fork 在主配置上添加没有副作用的新配置 x 嵌套映射
GetMemberName 定义如何解析成员名 x 自定义成员名称
Ignore 忽略特定属性 x 映射忽略
IgnoreAttribute 忽略属性上特定的特性标记 x 特性标记
IgnoreIf 忽略表达式 x 根据条件映射忽略
IgnoreMember 忽略设置规则 x 基于规则
IgnoreNonMapped 忽略 Map 中未定义的所有属性 x 映射忽略
IgnoreNullValues 如果 源属性 为空,则不映射 浅映射和合并映射
Include 映射包含派生类型 映射配置继承
IncludeAttribute 包括在属性上注释的特定的特性标记 x 特性标记
IncludeMember 包含的配置规则 x 基于规则
Inherits 复制基类的映射配置 x 映射配置继承
Map 定义属性映射 x 自定义映射
MapToConstructor 构造函数映射 x 构造函数
MapToTargetWith 定义如何映射到现有对象 自定义映射
MapWith 定义如何映射 x 自定义映射
MaxDepth 定义映射最大深度 x 对象引用
NameMatchingStrategy 定义如何解析属性的名称 x 自定义成员名称
PreserveReference 映射时追踪引用 对象引用
ShallowCopyForSameType 如果源类型与目标类型相同,直接分配而不是深度克隆 浅映射和合并映射
TwoWays 定义双向映射 x 双向 & 逆扁平映射
Unflattening 逆扁平映射 x 双向 & 逆扁平映射
UseDestinationValue 使用现有属性对象映射数据 映射只读属性

Attributes

特性 说明 链接
[AdaptMember(name)] 设置属性映射的目标的属性名称 基于Attribute的配置
[AdaptIgnore(side)] 映射时忽略成员 基于Attribute的配置
[UseDestinationValue] 使用现有属性对象映射数据 基于Attribute的配置
[AdaptTo] [AdaptFrom] [AdaptTwoWays] 在POCO类上添加设置 映射配置位置
[Mapper] [GeneratMapper] [PropertyType] 为代码生成定义设置 Mapster.Tool

插件库

名称 方法 说明
Async setting.AfterMappingAsync
builder.AdaptToTypeAsync
对映射执行异步操作
Debugging config.Compiler = exp => exp.CompileWithDebugInfo() 编译以允许步进调试
Dependency Injection MapContext.Current.GetService<IService>() 依赖注入获取映射服务
EF 6 & EF Core builder.EntityFromContext 将数据复制到跟踪的EF实体
FEC config.Compiler = exp => exp.CompileFast() 编译使用FastExpressionCompiler
Immutable config.EnableImmutableMapping() 映射到 immutable collection(只读集合.md)
Json.net config.EnableJsonMapping() 映射JSON对象到实体类或字符串;映射实体类或字符串到 JSON 对象

代码生成器

插件 工具 说明
Mapster.Tool dotnet mapster 生成 DTO 并在构建时映射代码
TextTemplate t4 使用 T4 生成映射代码