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默认会根据字段名称进行映射,而不管字段的类型。也就是说,如果源对象字段名称与目标对象字段名称一致,但是类型不一致且不能进行强制转换时,会抛出异常。

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

猜你喜欢

转载自blog.csdn.net/qq_43307934/article/details/108702051