Дочерние записи из отношения не загружаются (EF4.0, POCO) - PullRequest
1 голос
/ 23 августа 2010

У меня есть 2 класса: Пользователь и Booklink

        public class User
        {
            public int UserID { get; set; }
            public string Email { get; set; }
            public string Login { get; set; }
            public string Surname { get; set; }
            public string Name { get; set; }
            public int Points { get; set; }
            public string Password { get; set; }

            public IEnumerable<BookLink> BookLinks { get; set; }
        }

        public class BookLink
        {
            public int LinkID { get; set; }
            public int BookID { get; set; }
            public int UserID { get; set; }
            public DateTime EventDate { get; set; }

            public Book Book { get; set; }
            public User User { get; set; }

        }

Я использовал новую функцию EF4.0 - POCO.

Проблема: при загрузке user entity свойство BookLinks имеет значение NULL (в таблице Booklinks есть несколько дочерних записей). Но другие поля (свойства) были загружены нормально, и все они (кроме Booklinks) имеют значения из базы данных.

Я получаю объекты из общего репозитория следующим образом:

UsersRepository usersRepository = new UsersRepository();

            User user = usersRepository.FindByID(1);

Метод FindByID реализован следующим образом

private ObjectSet<T> _entitySet;    
return _entitySet.AsQueryable().Where(predicate).SingeOrDefault();

И свойство навигации Booklinks в пользователь Экземпляр равен NULL

Я не могу понять, почему я вижу это поведение. Как я могу автоматически загружать дочерние записи?

Вот скриншот от дизайнера EF http://tinyurl.com/2ct45d5 (если это поможет ...)

1 Ответ

2 голосов
/ 23 августа 2010

Ленивая загрузка не может работать в POCO, если вы не объявите свою ассоциацию virtual (у вас нет) и не включите создание прокси (по умолчанию, IIRC).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...