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

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