中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

EF架構~對(dui)AutoMapper實體(ti)映射的擴展

回到目錄

AutoMapper在之前我曾經介紹過,今天主要是把它作一(yi)下擴(kuo)展(zhan),因為它的(de)調(diao)用(yong)太麻煩了,呵(he)呵(he),擴(kuo)展(zhan)之(zhi)后,用(yong)著還可(ke)以,感覺(jue).net3.5之(zhi)后,有了擴(kuo)展(zhan)方(fang)法這(zhe)個東西,在(zai)程序開發速度(du)及表現力上都(dou)有了明顯的(de)提升,呵(he)呵(he)。

當擴展方法開發完之后(hou)的效果如(ru)下(xia)

實體(ti)對實體(ti)的映(ying)射(賦值(zhi))

        var user = new User
            {
                ID = 1,
                Name = "zzl",
                CreateDate = DateTime.Now,
            };
       UserModel model = user.MapTo<UserModel>();
        Console.WriteLine(model.ID + model.Name);

集合對集合的映射(賦值(zhi))

       var userList = new List<User> { user };
            userList.Add(new User
            {
                ID = 2,
                Name = "zzllr",
                CreateDate = DateTime.Now,
            });
            var modelList = userList.MapTo<UserModel>();
            modelList.ForEach(i =>
            {
                Console.WriteLine(i.Name);
            });

下面是(shi)擴展方(fang)法的(de)代碼,一個是(shi)實體的(de),一個是(shi)集合的(de)

   /// <summary>
    /// AutoMapper擴(kuo)展(zhan)方法
    /// </summary>
    public static class AutoMapperExtension
    {
        /// <summary>
        /// 集合對集合
        /// </summary>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="self"></param>
        /// <returns></returns>
        public static List<TResult> MapTo<TResult>(this IEnumerable self)
        {
            if (self == null)
                throw new ArgumentNullException();
            Mapper.CreateMap(self.GetType(), typeof(TResult));
            return (List<TResult>)Mapper.Map(self, self.GetType(), typeof(List<TResult>));
        }
        /// <summary>
        /// 對(dui)(dui)(dui)象對(dui)(dui)(dui)對(dui)(dui)(dui)象
        /// </summary>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="self"></param>
        /// <returns></returns>
        public static TResult MapTo<TResult>(this object self)
        {
            if (self == null)
                throw new ArgumentNullException();
            Mapper.CreateMap(self.GetType(), typeof(TResult));
            return (TResult)Mapper.Map(self, self.GetType(), typeof(TResult));
        }

    }

回到目錄

posted @ 2013-09-18 09:58  張占嶺  閱讀(4675)  評論(3)    收藏  舉報