Преобразование столбцов отслеживания в имена базовых классов с помощью AutoMapper - PullRequest
0 голосов
/ 07 марта 2011

Это моя текущая модель домена класса:

public class Customer : TrackedEntity
{
    ... // Working Properties Omitted
}

public abstract class TrackedEntity
{
     public DateTime CreatedAt { get; set; } // Maps to field 'CreateDate'
     public DateTime ModifiedAt { get; set; } // Maps to field 'ModDate'
     public string  CreatedBy { get; set; } 
     public string ModifiedBy { get; set; } // Maps to field 'ModBy'
}

Каждая таблица базы данных, которую я отображаю (из EFv4), содержит поля отслеживания с теми же типами, но с именами, отличными от тех, что указаны в TrackedEntity. Есть ли способ установить соглашение о сопоставлении, чтобы вам не нужно было вручную сопоставлять эти столбцы для всех сущностей, производных от TrackedEntity?

Спасибо!

1 Ответ

0 голосов
/ 07 марта 2011

Вы можете вручную настроить сопоставления в своих созданиях карт для обработки несовпадающих имен:

Mapper.CreateMap<TypeA, TypeB>()
    .ForMember(dest => dest.Prop1, opt => opt.MapFrom(src => src.PropA))
    .ForMember(dest => dest.Prop2, opt => opt.MapFrom(src => src.PropB));

Имейте в виду, что вам нужно запускать создания карт только один раз, и они хороши на время вашего обращения.Я поместил свой в App Start в global.asax, чтобы я знал, что они все в одном месте, и мне не нужно суетиться с ними, когда я на самом деле использую AutoMapper.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...