Programmation C #, framework de mappage d'entités open source Méthode d'utilisation de TinyMapper

1. Introduction

TinyMapper est un mappeur objet à objet .Net. Le principal avantage est la performance.
TinyMapper permet de mapper facilement des objets sur des objets, c'est-à-dire des propriétés ou des champs d'un objet à un autre.
TinyMapper est simple à utiliser, avec uniquement des opérations Bind et Mapper; et la configuration prise en charge est également très simple.
TinyMapper prend en charge les versions supérieures à .Net 3.0

2. Site Web

3. Utilisez

3.1, installation

À travers la console

PM> Install-Package TinyMapper

ou
Insérez la description de l'image ici

3.2, utilisez les étapes

1. Relation de mappage de liaison

public static void Bind<TSource, TTarget>();
//或者
public static void Bind<TSource, TTarget>(Action<IBindingConfig<TSource, TTarget>> config);

2. Effectuer le mappage

Remarque: l'objet de mappage de TinyMapper doit être de type Public.

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

4, cas concret

Créez deux objets de mappage:



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; }
}

Reliure et exécution

Du produit au 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. Cartographie de la collection

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);

Lors de la conversion de mappage, TinyMapper ne prend pas en charge les types d'interface: IList, ICollection, IEnumerable.

6. Spécifiez les champs

Donnez le champ Prix à Money

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

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

7. Ignorer le champ spécifié

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

Remarque: TinyMapper mappera en fonction du nom de champ par défaut, quel que soit le type de champ. En d'autres termes, si le nom du champ de l'objet source est le même que le nom du champ de l'objet cible, mais que le type est incohérent et ne peut pas être casté, une exception sera levée.

Méthode de mappage efficace pour la conversion manuelle des champs du même nom en se référant à l'URL

Je suppose que tu aimes

Origine blog.csdn.net/qq_43307934/article/details/108702051
conseillé
Classement