Я использую EF Core со своим собственным модулем работы и общим шаблоном хранилища. У меня есть свойство shadow, связывающее сущности, которые не имеют прямой связи с БД.
Поэтому я выполняю добавление UOW к двум таблицам, используя свойство shadow для получения идентификатора из первой вставки и помещая его в качестве внешнего ключа во вторую без ограничений.
Это все работает отлично, и вновь вставленные записи в обеих таблицах соответствуют. Итак, первичный ключ первой таблицы успешно помещен во вторую, поэтому у меня есть теневые отношения.
Что я не могу сделать, так это получить доступ к этому новому полю идентификатора в коде C #, чтобы я мог затем вернуть его клиенту.
Как то так ..
int entity1ID = _unitOfWork.entity1Repository.AddEntity1(entity1);
//The value in entity1ID is -2147482647. This is used to map the shadow property.
int entity2ID = _unitOfWork.entity2Repository.AddEntity2(entity2);
int resultCount = await _unitOfWork.SaveChangesAsync();
После завершения этого процесса все работает. Я не могу заполучить поле entity1ID, если я проверю его, то оно все равно будет иметь значение -2147482647. Кто-нибудь знает достойное решение этой проблемы.