.net framework autoMapper使用

路遙執碼力發表於2020-06-20

DDD開發模式經常會用到dto(資料傳輸物件)和entity(實體),dto和entity中的屬性有重合的部分,將dto中的資料持久化到資料庫中時,為了保證領域實體不被汙染,往往需要將dto轉化為entity,單個屬性的賦值會比較麻煩,如何實現將dto自動map到entity中呢?

基於.net framwork的工程可以在nuget中下載 AutoMapp類庫引用到使用的類中(不支援.net core),具體實現如下:

    class PersonEntity
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public string Age { get; set; }
        public string Address { get; set; }
    }

    class PersonDto
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public string Age { get; set; }
        public string Address { get; set; }
        public string Grade { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var dto = new PersonDto
            {
                Address = "chengbeiRoad",
                Age = "23",
                Id = "1",
                Name = "Herny",
                Grade = "85"
            };

            var config = new MapperConfiguration(cfg=> { cfg.CreateMap<PersonDto, PersonEntity>(); });
            var mapper = config.CreateMapper();
            var entity = mapper.Map<PersonDto, PersonEntity>(dto);
            Console.ReadKey();
        }
    }

相關文章