Как правильно загрузить ссылки на объекты с помощью ADO.net Entity Framework - PullRequest
1 голос
/ 27 марта 2009

То, что я делаю, работает, но это просто неправильно, я это знаю.

    public Profile GetProfile(int id)
    {
        Profile profile = (
            from u in en.User where u.UserID == id 
                select u.Profile.FirstOrDefault()
            ).First();

        if (profile.UserReference.Value == null)
            profile.UserReference.Load();

        return profile;
    }

Profile.UserID - это FK, связанный с User.UserID. Таким образом, Profile.UserID не включен в Entity Model Entity Framework, поэтому мой запрос linq сначала ищет объект User, а затем выбирает связанный объект Profile (который мне кажется очень грязным).

Может кто-нибудь предложить лучшее решение для:

  1. Поиск объекта профиля через User.UserID.
  2. Загрузить ссылку на объект User в возвращенном объекте Profile.

Заранее спасибо!

1 Ответ

4 голосов
/ 27 марта 2009

Попробуйте использовать метод Включить

public Profile GetProfile(int id)
{
  return (from p in db.Profiles.Include("User")
          where p.User.UserId == id
          select p).FirstOrDefault();
}

Этот метод возвращает объект профиля с уже загруженной ссылкой пользователя.

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