• 【AutoMapper基础】简单示例--Flattening


    【Flattening】

    One of the common usages of object-object mapping is to take a complex object model and flatten it to a simpler model. 

    【类图】

    【Code】

    CPU:

    public class CPU
        {
            public string ProducerName { get; set; }
            public string ModelName { get; set; }
            public double MainFrequency { get; set; }
        }
    View Code

    InternalMemory:

    public class InternalMemory
        {
            public string ProducerName { get; set; }
            public string ModelName { get; set; }
            public double Size { get; set; }
            public double Frequency { get; set; }
        }
    View Code

    Monitor:

    public class Monitor
        {
            public string ProducerName { get; set; }
            public string ModelName { get; set; }
            public double Size { get; set; }
        }
    View Code

    Computer:

    public class Computer
        {
            public string Name { get; set; }
            public double Price { get; set; }
            public DateTime ProduceDate { get; set; }
            public CPU CPU { get; set; }
            public InternalMemory InternalMemory { get; set; }
            public Monitor Monitor { get; set; }
        }
    View Code

    Program:

    class Program
        {
            static void Main(string[] args)
            {
                Computer computer = new Computer()
                {
                    Name = "联想Y450",
                    Price = 5199.00,
                    ProduceDate = new DateTime(2009, 10, 10),
                    CPU = new CPU()
                    {
                        MainFrequency = 2.2,
                        ModelName = "Core T6600",
                        ProducerName = "Intel"
                    },
                    InternalMemory = new InternalMemory()
                    {
                        Frequency = 1333,
                        ModelName = "DDR3",
                        ProducerName = "尔必达",
                        Size = 4.0
                    },
                    Monitor = new Monitor()
                    {
                        ProducerName = "LG",
                        Size = 14.0
                    }
                };
    
                AutoMapper.Mapper.CreateMap<Computer, ComputerMainInfo>();
                ComputerMainInfo computerMainInfo = AutoMapper.Mapper.Map<Computer, ComputerMainInfo>(computer);
    
                Console.WriteLine(computerMainInfo.CPUModelName);
                Console.Read();
            }
        }
    View Code

    AutoMapper自动根据名称搜索完成映射,这就从复杂的Computer映射到简化的ComputerMainInfo。

  • 相关阅读:
    【斜率DP】BZOJ 1010:玩具装箱
    【string】KMP, 扩展KMP,trie,SA,ACAM,SAM,最小表示法
    网络流24题 (一)
    关于ax+by=c的解x,y的min(|x|+|y|)值问题
    【概率】COGS 1487:麻球繁衍
    【概率】poj 2096:Collecting Bugs
    [洛谷P5376] 过河卒二
    [TJOI2019] 洛谷P5339 唱、跳、rap和篮球
    [洛谷P3851] TJOI2007 脱险
    [洛谷P3843] TJOI2007 迷路
  • 原文地址:https://www.cnblogs.com/fb-boy/p/3480602.html
Copyright © 2020-2023  润新知