我扩展了IdentityUser
,因为用户属于组织。
public class ApplicationUser : IdentityUser
{
public int OrganisationId { get; set; }
[ForeignKey("OrganisationId")]
public Organisation Organisation { get; set; }
}
在剃须刀页面中,此方法有效:
Organisation = (await UserManager.GetUserAsync(User)).Organisation;
但是,在Startup.cs
中,此操作无效:
UserManager<ApplicationUser> userManager = serviceProvider.GetRequiredService<UserManager<ApplicationUser>>();
ApplicationUser rwb = await userManager.FindByEmailAsync("rwb@...");
Organisation o = rwb.Organisation; // null :(
这是怎么回事?
为什么Entity Framework Core不加载导航属性?如何获取导航属性?
答案 0 :(得分:0)
Microsoft.EntityFrameworkCore.Proxies
Startup.cs
中像这样执行.UseLazyLoadingProxies()
: services.AddDbContext<ApplicationDbContext>(options =>
options.UseLazyLoadingProxies().UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
virtual
。