Должны ли внешние свойства идентификатора отображаться с модели на Dto?

93
7

Если у меня есть следующая модель:

public class Customer
{
public int Id {get; set;}
public int CustomerTypeId {get; set;}
public virtual CustomerType {get; set;}
}

Если Dto исключает внешний идентификатор, он выглядит следующим образом:

public class CustomerDto
{
public int Id {get; set;}
public virtual CustomerType {get; set;}
}

А при использовании Graphdiff для обновления графа объектов EF знает, что CustomerType сопоставляется с CustomerTypeId?

спросил(а) 2015-02-04T12:57:00+03:00 5 лет, 5 месяцев назад
1
Решение
86

Да, вам нужно использовать его, но вы можете избежать объявления виртуального участника. Если вы используете AutoMapper, то отображение будет выполнено автоматически. Итак, ваше Dto будет выглядеть так:

public class CustomerDto
{
public int Id {get; set;}
public int CustomerTypeId {get; set;}
}

И отображение:

Mapper.CreateMap<Customer, CustomerDto>();
Mapper.CreateMap<CustomerDto, Customer>();

ответил(а) 2015-02-04T19:39:00+03:00 5 лет, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема