我已经扩展了ApplicationUser,以包括OrganizationId和应该映射到外部组织表的组织对象。这在初始用户注册时效果很好-如果是现有组织,我只填充OrganizationId字段。如果是一个新组织,我实例化一个新的组织对象,并在组织表中创建一个新组织。
当我使用GetUserAsync下拉记录时,会提取正确的CityId和OrganizationId字段。但UserCity和Organization对象为NULL。我知道我可以根据返回的ID手动查找城市/组织,但我想知道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; }
}