Я пытаюсь включить Automapper в проект с помощью Entity Framework, это мой класс DTO:
public class FunctionDto
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public string Comment { get; set; }
public DateTime? ExaminationDate { get; set; }
public string Place { get; set; }
}
И сначала класс домена с кодом:
public class Function
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public string Comment { get; set; }
public DateTime? ExaminationDate { get; set; }
public string Place { get; set; }
public virtual List<Employee> Employees { get; set; }
}
Конфигурация автомаппера:
public static class AutoMapperConfiguration
{
public static void Configure()
{
Mapper.Initialize(config => config.AddProfile<FunctionProfile>());
}
}
public class FunctionProfile : Profile
{
protected override void Configure()
{
CreateMap<Function, FunctionDto>()
.ForMember(dto => dto.Id, opt => opt.MapFrom(src => src.Id))
.ForMember(dto => dto.Name, opt => opt.MapFrom(src => src.Name))
.ForMember(dto => dto.Comment, opt => opt.MapFrom(src => src.Comment))
.ForMember(dto => dto.StartDate, opt => opt.MapFrom(src => src.StartDate))
.ForMember(dto => dto.EndDate, opt => opt.MapFrom(src => src.EndDate))
.ForMember(dto => dto.ExaminationDate, opt => opt.MapFrom(src => src.ExaminationDate))
.ForMember(dto => dto.Place, opt => opt.MapFrom(src => src.Place));
}
}
Затем используйте в WebApi:
var functionDtos = functions
.AsQueryable()
.OrderBy(sort)
.Skip(start)
.Take(count)
.ToList()
.Select(Mapper.Map<FunctionDto>);
Конечно, я зарегистрировался в Global:
AutoMapperConfiguration.Configure();
Но у меня есть исключение:
Отсутствует конфигурация карты типов или неподдерживаемое сопоставление
Что не так с приведенным выше кодом?
CreateMap<Function, FunctionDto>();
, потому что все участники имеют одинаковые имена. Что произойдет, если вы поместите оператор инициализации непосредственно перед запросом linq? (Просто для попытки) - person Gert Arnold   schedule 29.11.2012functions.Select(Mapper.Map<FunctionDto>)
, но все равно получаю ту же ошибку. Также функция здесь - это прокси-класс из-за ленивой загрузки - person cuongle   schedule 29.11.2012