日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

automapper自动创建映射_AutoMapper 自动映射工具

發布時間:2024/1/1 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 automapper自动创建映射_AutoMapper 自动映射工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

11.轉換匿名對象 結合LINQ映射新的實體類.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using AutoMapper;

using System.Data;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

//1.普通轉換

Name name1 = new Name() { FirstName = "L", LastName = "jz" };

Mapper.CreateMap()

.BeforeMap((name, nameDto) => Console.WriteLine("hello world before"))

.AfterMap((name, nameDto) => Console.WriteLine("hello world after"));

NameDto nameDto1 = Mapper.Map(name1);

Console.WriteLine("1");

Console.WriteLine(nameDto1.FirstName + nameDto1.LastName);

Console.WriteLine();

//Console.ReadKey();

//整體設置

//2.整體即時轉換

Mapper.Reset();

Name name2 = new Name() { FirstName = "L", LastName = "jz" };

Mapper.CreateMap()

.ConstructUsing(name => new NameDto() { AllName = name.FirstName + name.LastName });

NameDto nameDto2 = Mapper.Map(name2);

Console.WriteLine("2");

Console.WriteLine(nameDto2.AllName);

Console.WriteLine();

//Console.ReadKey();

//3.整體通過TypeConverter類型轉換

Mapper.Reset();

Name name3 = new Name() { FirstName = "L", LastName = "jz" };

Mapper.CreateMap()

.ConvertUsing();

NameDto nameDto3 = Mapper.Map(name3);

Console.WriteLine("3");

Console.WriteLine(nameDto3.AllName);

Console.WriteLine();

//Console.ReadKey();

//單屬性設置

//4.屬性條件轉換

Mapper.Reset();

Name name4 = new Name() { FirstName = "L", LastName = "jz" };

Mapper.CreateMap()

.ForMember(name => name.FirstName, opt => opt.Condition(name => !name.FirstName.Equals("l", StringComparison.OrdinalIgnoreCase)));

NameDto nameDto4 = Mapper.Map(name4);

Console.WriteLine("4");

Console.WriteLine(string.IsNullOrEmpty(nameDto4.FirstName));

Console.WriteLine();

//Console.ReadKey();

//5.屬性忽略

Mapper.Reset();

Name name5 = new Name() { FirstName = "L", LastName = "jz" };

Mapper.CreateMap()

.ForMember(name => name.FirstName, opt => opt.Ignore());

NameDto nameDto5 = Mapper.Map(name5);

Console.WriteLine("5");

Console.WriteLine(string.IsNullOrEmpty(nameDto5.FirstName));

Console.WriteLine();

//Console.ReadKey();

//6.屬性轉換

Mapper.Reset();

Name name6 = new Name() { FirstName = "L", LastName = "jz" };

Mapper.CreateMap()

.ForMember(name => name.AllName, opt => opt.MapFrom(name => name.FirstName + name.LastName));

NameDto nameDto6 = Mapper.Map(name6);

Console.WriteLine("6");

Console.WriteLine(nameDto6.AllName);

Console.WriteLine();

//Console.ReadKey();

//7.屬性通過ValueResolver轉換

Mapper.Reset();

Name name7 = new Name() { FirstName = "L", LastName = "jz" };

Mapper.CreateMap()

.ForMember(storeDto => storeDto.Name, opt => opt.ResolveUsing());

StoreDto store1 = Mapper.Map(name7);

Console.WriteLine("7");

Console.WriteLine(store1.Name.FirstName + store1.Name.LastName);

Console.WriteLine();

//Console.ReadKey();

//8.屬性填充固定值

Mapper.Reset();

Name name8 = new Name() { FirstName = "L", LastName = "jz" };

Mapper.CreateMap()

.ForMember(name => name.AllName, opt => opt.UseValue("ljzforever"));

NameDto nameDto8 = Mapper.Map(name8);

Console.WriteLine("8");

Console.WriteLine(nameDto8.AllName);

Console.WriteLine();

//Console.ReadKey();

//9.屬性格式化

Mapper.Reset();

Name name9 = new Name() { FirstName = "L", LastName = "jz" };

Mapper.CreateMap()

.ForMember(name => name.FirstName, opt => opt.AddFormatter());

NameDto nameDto9 = Mapper.Map(name9);

Console.WriteLine("9");

Console.WriteLine(nameDto9.FirstName);

Console.WriteLine();

//Console.ReadKey();

//10.屬性null時的默認值

Mapper.Reset();

Name name10 = new Name() { FirstName = "L" };

Mapper.CreateMap()

.ForMember(name => name.LastName, opt => opt.NullSubstitute("jz"));

NameDto nameDto10 = Mapper.Map(name10);

Console.WriteLine("10");

Console.WriteLine(nameDto10.LastName);

Console.WriteLine();

//Console.ReadKey();

//其它設置與特性

//11.轉換匿名對象

Mapper.Reset();

object name11 = new { FirstName = "L", LastName = "jz" };

NameDto nameDto11 = Mapper.DynamicMap(name11);

Console.WriteLine("11");

Console.WriteLine(nameDto11.FirstName + nameDto11.LastName);

Console.WriteLine();

//Console.ReadKey();

//12.轉換DataTable

Mapper.Reset();

DataTable dt = new DataTable();

dt.Columns.Add("FirstName", typeof(string));

dt.Columns.Add("LastName", typeof(string));

dt.Rows.Add("L", "jz");

List nameDto12 = Mapper.DynamicMap>(dt.CreateDataReader());

Console.WriteLine("12");

Console.WriteLine(nameDto12[0].FirstName + nameDto12[0].LastName);

Console.WriteLine();

//Console.ReadKey();

//emitMapper error

//List nameDto20 = EmitMapper.ObjectMapperManager.DefaultInstance.GetMapper>().Map(dt.CreateDataReader());

//13.轉化存在的對象

Mapper.Reset();

Mapper.CreateMap()

.ForMember(name => name.LastName, opt => opt.Ignore());

Name name13 = new Name() { FirstName = "L" };

NameDto nameDto13 = new NameDto() { LastName = "jz" };

Mapper.Map(name13, nameDto13);

//nameDto13 = Mapper.Map(name13);//注意,必需使用上面的寫法,不然nameDto13對象的LastName屬性會被覆蓋

Console.WriteLine("13");

Console.WriteLine(nameDto13.FirstName + nameDto13.LastName);

Console.WriteLine();

//Console.ReadKey();

//14.Flatten特性

Mapper.Reset();

Mapper.CreateMap();

Store store2 = new Store() { Name = new Name() { FirstName = "L", LastName = "jz" } };

FlattenName nameDto14 = Mapper.Map(store2);

Console.WriteLine("14");

Console.WriteLine(nameDto14.NameFirstname + nameDto14.NameLastName);

Console.WriteLine();

//Console.ReadKey();

//15.將Dictionary轉化為對象,現在還不支持

Mapper.Reset();

Mapper.CreateMap, Name>();

Dictionary dict = new Dictionary();

dict.Add("FirstName", "L");

//Name name15 = Mapper.DynamicMap, Name>(dict);

Name name15 = Mapper.Map, Name>(dict);

Console.WriteLine("15");

Console.WriteLine(name15.FirstName);

Console.WriteLine();

Console.ReadKey();

}

}

public class Store

{

public Name Name { get; set; }

public int Age { get; set; }

}

public class Name

{

public string FirstName { get; set; }

public string LastName { get; set; }

}

public class StoreDto

{

public NameDto Name { get; set; }

public int Age { get; set; }

}

public class NameDto

{

public string FirstName { get; set; }

public string LastName { get; set; }

public string AllName { get; set; }

}

public class FlattenName

{

public string NameFirstname { get; set; }

public string NameLastName { get; set; }

}

public class NameConverter : TypeConverter

{

protected override NameDto ConvertCore(Name source)

{

return new NameDto() { AllName = source.FirstName + source.LastName };

}

}

public class NameResolver : ValueResolver

{

protected override NameDto ResolveCore(Name source)

{

return new NameDto() { FirstName = source.FirstName, LastName = source.LastName };

}

}

public class NameFormatter : ValueFormatter

{

protected override string FormatValueCore(NameDto name)

{

return name.FirstName + name.LastName;

}

}

public class StringFormatter : ValueFormatter

{

protected override string FormatValueCore(string name)

{

return name + "-";

}

}

}

總結

以上是生活随笔為你收集整理的automapper自动创建映射_AutoMapper 自动映射工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。