@JackBoner

ASP.NET MVC 5. Identity. Как получить данные из отдельной таблицы?

Как выгрузить через UserManager дополнительные данные о пользователе, которые хранятся в отдельной таблице, которая связана по принципу один-к-одному с главной таблицей (AspNetUsers)

Теперь по подробнее:
в классе class ApplicationUser : IdentityUser
добавлено свойство
public UserProfile UserProfile { get; set; }

а вот и сама модель:
public class UserProfile
    {
        [Key,ForeignKey("ApplicationUser")]
        public string ID { get; set; }
        public ApplicationUser ApplicationUser { get; set; }

        public DateTime? Birthday { get; set; }       
    }


При регистрации нового пользователя производится следующее:
newUser.UserProfile = new UserProfile {Birthday=birthday,ID = newUser.Id};
UserManager.Update(newUser);

Всё это дело успешно выполняется и сохраняется в бд.

Но когда пытаюсь извлечь данные профиля пользователя через UserManager
ApplicationUser user = await UserManager.FindByNameAsync(userName)

user.UserProfile всегда = null

Т.е FindByUsername извлекает только основные данные, без тех, что находятся в отдельных таблицах.
Как можно извлечь через UserManager полную информацию, к-ая включает в себя данные в связанных таблицах?

чтоб например был такой же результат
сontext.Users.Include(Users => Users.UserProfile).Single(u => u.UserName==User.Identity.Name);


---
И ещё: я так понял, чтобы извлекать данные из базы асинхронно, нужно каждый запрос упаковывать в метод типа Task GetSomethingAsync() ?
не уж то нет ничего проще?
  • Вопрос задан
  • 4183 просмотра
Пригласить эксперта
Ответы на вопрос 1
@asdz
Может у вас просто отключена загрузка связанных объектов в EF? Посмотрите свойство LazyLoadingEnabled у контекста.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы