Для всех моих POCOs свойства навигации и коллекции имеют нулевое значение.
Позвольте мне привести некоторые предпосылки. У меня есть сложный код первого проекта с использованием EF 4.3.1. Генерация прокси-сервера была отключена. Свойства коллекции и навигации управлялись вручную.
Теперь я разрешаю создание прокси и ленивую загрузку. При отладке я вижу, что мой объект (который передается моему известному типу POCO) теперь фактически является автоматически созданным прокси-классом. Все идет нормально.
Теперь, когда я смотрю на свои свойства навигации, они равны нулю. Точно так же мои свойства коллекции имеют значение null.
Используя отражение, я вижу, что прокси-класс HAS переопределяет мои свойства навигации и коллекции.
Все свойства навигации и сбора являются виртуальными. например:
public virtual NavigationType NavigationName { get; set; }
public virtual ICollection<CollectionType> CollectionName { get; set; }
Кроме того, все таблицы инициализируются как таковые:
modelBuilder.Entity<TEntity>()
.Map(m =>
{
m.MapInheritedProperties();
m.ToTable("TableName");
});
Я также могу подтвердить, что база данных генерируется так, как ожидалось. Все внешние ключи присутствуют и связаны с ожидаемыми полями.
Почему они ноль? Как я могу диагностировать это дальше?