Моя настройка следующая: Entity Framework POCO (+ прокси и ленивая загрузка). И класс Person
со ссылкой на Address
:
public class Person
{
private Address _address;
/* Navigation property */
public virtual Address Home
{
get
{
return _address;
}
set
{
_address = value;
}
}
}
Проблема в том, что это свойство 0..1
и может быть null
. Вопрос в том, как создать новый экземпляр Address, если он равен null
. Ленивая загрузка не создает новый экземпляр автоматически (и не должен), и если я переписываю получатель следующим образом, он всегда создает новый Address
:
private Address _address;
/* Navigation property */
public virtual Address Home
{
get
{
if(_address == null) Address = MyContext.CreateObject<Address>();
return _address;
}
set
{
_address = value;
}
}
Так что, если никогда не перейти от null
к реальному значению, как это (я предполагаю, что это связано с механизмом отложенной загрузки и прокси-свойства EF). Проверка на null
в конструкторе также не помогает - тот же результат - всегда создает новый Address
.