【发布时间】:2015-09-01 17:50:10
【问题描述】:
我有一个扩展的 IdentityUser 类,其中包含对我的数据库中另一个实体的引用,但每当我尝试使用 UserManager 获取用户时,引用的实体总是为空:
我的用户类实现
public class Usuario : IdentityUser
{
public int ClienteID { get; set; }
public virtual Cliente Cliente { get; set; }
}
在用户上使用引用属性的控制器
[Authorize]
[HttpGet]
public async Task<Direccion> GET()
{
var usuario = await UserManager.FindByNameAsync(Context.User.Identity.Name);
// Cliente will always be null
return usuario.Cliente.Direccion;
}
我还尝试从引用中删除 virtual 关键字,使其延迟加载,但我不确定是否已在 EF7 上实现。
关于如何实现这一点的任何想法?
【问题讨论】:
-
我认为删除 virtual 关键字会启用即时加载,这样我就不必更改实现(添加包含)
-
您仍然需要包含来急切加载相关实体。 msdn.microsoft.com/en-us/data/jj574232.aspx#eager
-
知道了,谢谢!,您可能想添加您的评论作为答案,以便我可以将其标记为正确 =)
-
呃,我从别人那里偷的 ;)
标签: asp.net-identity asp.net-core entity-framework-core