Вы можете предварительно загрузить все свойства в контексте, чтобы заставить исправить отношения работать.Например:
context.EyeColors.Load();
var personEntity = new PersonEntity()
{
EyeColorId = 5
};
context.Persons.Attach(personEntity);
В последнем операторе EF автоматически заполняется personEntity.EyeColor
.
В качестве альтернативы, вы можете рассчитывать на отложенную загрузку, инициализируя объект как прокси с отложенной загрузкой.Свойство должно быть virtual
, чтобы разрешить создание прокси:
public virtual EyeColorEntity EyeColor { get; set; }
Тогда:
var personEntity = context.Persons.Create(); // Creates a proxy
personEntity.EyeColorId = 5;
context.Persons.Attach(personEntity);
Теперь EF будет запрашивать соответствующий EyeColor
из базы данных при обращении к personEntity.EyeColor
(= отложенная загрузка).
Я не хочу запрашивать индивидуально для каждого свойства
При отложенной загрузке свойства запроса выполняются индивидуально, но это не вы.чтобы сделать это.
Обратите внимание, что в обоих случаях personEntity
должен быть присоединен к контексту.