AutoMapper – EF Core: повторное использование объекта в свойстве навигацииC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 AutoMapper – EF Core: повторное использование объекта в свойстве навигации

Сообщение Anonymous »

Мне пришлось провести рефакторинг существующего кода, и тут я столкнулся со сценарием, который нужно решить с помощью AutoMapper и EF Core. Например, есть бизнес-объекты и объекты-сущности:

Код: Выделить всё

class BusinessMaster
{
public string Id {get;set;}
public BusinessRef {get;set;}
}
class BusinessRef
{
public string Id {get;set;}
}
...
class EntityMaster
{
public string Id {get;set;}
public string RefId {get;set;}
public EntityRef Ref {get;set;}
}
class EntityRef
{
public string Id {get;set;}
}
Домен Ref не зависит от Master, Master просто может использовать существующий объект Ref.
Тогда возникает вопрос — каким должен быть AutoMapper карта BusinessMaster -> EntityMaster настроена правильно? Если у меня есть объект BusinessMaster, который ссылается на экземпляр BusinessRef, я хочу сопоставить BusinessMaster с EntityMaster (очевидно), а также BusinessRef с EntityRef НО Мне нужно быть уверенным, что экземпляр EntityRef является уже существующим отслеживаемым экземпляром EF Core, и если я попытаюсь добавить новый экземпляр EntityMaster в БД через EF не пытается также вставить новую запись для EntityRef.
Я знаю, что могу использовать перегрузку на корневом уровне, то есть

Код: Выделить всё

mapper.Map(businessMaster, existingEntityMaster);
Но мне нужно что-то подобное для внутренних ссылок.

Подробнее здесь: https://stackoverflow.com/questions/786 ... n-property
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»