C#编程,开源实体映射框架TinyMapper 使用方法

1、介绍

TinyMapper是.Net的对象到对象映射器。主要优点是性能。
TinyMapper允许轻松地将对象映射到对象,即从一个对象到另一个对象的属性或字段。
TinyMapper使用简单,只有Bind,Mapper两个操作;而且支持的配置也很简单。
TinyMapper支持.Net 3.0以上的版本

2、网址

3、使用

3.1、安装

通过控制台

PM> Install-Package TinyMapper

或者
在这里插入图片描述

3.2、使用步骤

1、绑定映射关系
public static void Bind<TSource, TTarget>();
//或者
public static void Bind<TSource, TTarget>(Action<IBindingConfig<TSource, TTarget>> config);
2、执行映射

注意:TinyMapper的映射对象必须是Public类型。

public static TTarget Map<TTarget>(object source);
//或者
public static TTarget Map<TSource, TTarget>(TSource source, TTarget target = default(TTarget));

4、具体事例

创建两个映射对象:


public class Product
{
	public Guid Id { get; set; }

	public string Name { get; set; }

	public decimal Price { get; set; }
}

public class ProductDTO
{
	public Guid Id { get; set; }

	public string Name { get; set; }

	public decimal Price { get; set; }
}
绑定与执行

从product 转ProductDTO

var product = new Product()
	{
		Id = Guid.NewGuid(),
		Name = "Product" + DateTime.Now.Ticks,
		Price = 12
	};

	//1. 创建映射关系
	TinyMapper.Bind<Product, ProductDTO>();

	//2. 执行映射
	var productDto = TinyMapper.Map<ProductDTO>(product);

5、集合映射

var products = new List<Product>()
	{
		new Product()
		{
			Id = Guid.NewGuid(),
			Name = "Product" + DateTime.Now.Ticks,
			Price = 5
		},
		new Product()
		{
			Id = Guid.NewGuid(),
			Name = "Product" + DateTime.Now.Ticks,
			Price = 10
		}
	};

	//1. 创建映射关系
	TinyMapper.Bind<List<Product>, List<ProductDTO>>();

	//2. 执行映射
	var productDtos = TinyMapper.Map<List<Product>>(products);

执行映射转换时,TinyMapper不支持接口类型:IList, ICollection, IEnumerable。

6、指定字段

将Price字段给Money

//1. 创建映射关系
	TinyMapper.Bind<Product, ProductDTO>(cfg =>
	{
		cfg.Bind(src => src.Price, dest => dest.Money); //指定字段映射
	});

	//2. 执行映射
	var productDto = TinyMapper.Map<ProductDTO>(product);

7、忽略指定字段

TinyMapper.Bind<Product, ProductDTO>(cfg =>
{
	cfg.Ignore(src => src.Price); //映射时不管某些字段
});

注意:TinyMapper默认会根据字段名称进行映射,而不管字段的类型。也就是说,如果源对象字段名称与目标对象字段名称一致,但是类型不一致且不能进行强制转换时,会抛出异常。

参考网址
手动实现同名字段转化的高效映射方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值