Я расширил ApplicationUser, включив в него OrganizationId и объект Organization, который должен отображаться в сторонней таблице Organization. Это отлично работает при начальной регистрации пользователя - если это существующая организация, я просто заполняю поле OrganizationId. Если это новая организация, я создаю экземпляр нового объекта Organization, и в таблице Organization создается новая организация.
Когда я опускаю запись с помощью GetUserAsync, извлекаются правильные поля CityId и OrganizationId. Объекты UserCity и Organization имеют значение NULL. Я знаю, что могу выполнить ручной поиск для запроса города / организации на основе возвращаемых идентификаторов, но мне было интересно, есть ли в Entity Framework механизм для автоматического заполнения этих двух объектов аналогами с внешним ключом в GetUserAsync.
var user = await _userManager.GetUserAsync(User);
public class ApplicationUser : IdentityUser
{
public String FirstName { get; set; }
public String LastName { get; set; }
public int? CityId { get; set; }
[ForeignKey("CityId")]
public virtual City UserCity { get; set; }
[ForeignKey("OrganizationId")]
public virtual Organization Organization { get; set; }
public int? OrganizationId { get; set; }
public bool AddToConstantContact { get; set; }
}