Asp.net mvc razor视图中的MVC身份用户

Asp.net mvc razor视图中的MVC身份用户,asp.net-mvc,razor,asp.net-identity,Asp.net Mvc,Razor,Asp.net Identity,我已通过外键将我的成员表与应用程序用户链接,如模型中所示 public int MemberId { get; set; } public int? UserId { get; set; } [ForeignKey("UserId")] public ApplicationUser User { get; set; } 在Razor视图中,我希望能够检索用户详细信息,例如 @Model.User.FirstName 但我明白了 System.NullRefer

我已通过外键将我的成员表与应用程序用户链接,如模型中所示

    public int MemberId { get; set; }
    public int? UserId { get; set; }
    [ForeignKey("UserId")]
    public ApplicationUser User { get; set; }
在Razor视图中,我希望能够检索用户详细信息,例如

@Model.User.FirstName
但我明白了

System.NullReferenceException: Object reference not set to an instance of an object.

不确定缺少了什么

您必须使您的用户ID->用户关系虚拟化。因此:

public int? UserId { get; set; }
[ForeignKey("UserId")]
public virtual ApplicationUser User { get; set; }
virtual
关键字添加到
User
的声明中意味着它将是“延迟加载”的,这在很短的时间内意味着只要您引用
User
对象,它就会从数据库加载数据


有关详细信息,请参见

您必须将您的用户ID->用户关系设置为虚拟。因此:

public int? UserId { get; set; }
[ForeignKey("UserId")]
public virtual ApplicationUser User { get; set; }
virtual
关键字添加到
User
的声明中意味着它将是“延迟加载”的,这在很短的时间内意味着只要您引用
User
对象,它就会从数据库加载数据


有关更多信息,请参见

您应该声明
公共应用程序用户
虚拟
,即
公共虚拟应用程序用户
您应该声明
公共应用程序用户
虚拟
,即
公共虚拟应用程序用户