EF "обходит" сеттер навигационного свойства при создании экземпляра сущности
Имеется сущность TestEntity у которой есть навигационное свойство NavigatedEntity. У сеттера TestEntity.NavigatedEntity имеется некоторая дополнительная логика (показана в виде Debug.Print("Hello world"):
public class TestEntity
{
public int Id { get; set; }
public int NavigatedEntityId { get; set; }
private NavigatedEntity navigatedEntity;
public NavigatedEntity NavigatedEntity
{
get { return navigatedEntity; }
set
{
//EntityFramework игнорирует этот сеттер при создании модели.
navigatedEntity = value;
Debug.Print("hello world");
}
}
}
public class NavigatedEntity
{
public int Id { get; set; }
}
Я хотел бы, чтобы при чтении из базы данных и инициализации модели, EF использовал этот сеттер и запускал указанную логику. Однако этого не происходит. Я инициализирую модель используя следующий код:
using (DatabaseModel db = new DatabaseModel())
{
List<TestEntity> testList = db.TestEntities.Include(x=>x.NavigatedEntity).ToList();
}
Создается лист сущностей с установленными навигационными свойствами, но EF задает их "в обход" сеттера.