7 Nisan 2017 Cuma

Entity Framework Simple Mapper


Merhaba,

Bu yazımda EF kullanırken db modeller ile ViewModelleri map edebilecek bir metodu paylaşacağım. Aslında yazılmış AutoMapper vb bileşenler var Nuget üzerinde. Ancak dynamic proxy i disabled edemediğiniz durumlarda AutoMapper çalışmıyor, ya da ben beceremedim.

Bu tür mapper'lar iki tip arasında reflection ile iletişim kurup property value leri transfer ediyor. Ancak ben aşağıdaki gibi reflection kullanmak yerine Json model e serilize edip sonra istediğim diğer modele deserilize ettiğim zaman konuyu çözdüm. Tüm ilişkili tablolar düzgün bir map edilebiliyor ve dynamic proxy kullanan nesneler de destekleniyor. Kod da sadece bir kaç satır.

Buyrun;

        public static List<T> MapList<T>(object source) where T:class {
            var list = JsonConvert.SerializeObject(source,
                Formatting.None, new JsonSerializerSettings() {
                ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
            });
            var resp = JsonConvert.DeserializeObject<List<T>>(list);
            return resp;

        }