Asp.net mvc 获取外键的值-对象引用未设置为对象的实例

Asp.net mvc 获取外键的值-对象引用未设置为对象的实例,asp.net-mvc,entity-framework,asp.net-membership,code-first,Asp.net Mvc,Entity Framework,Asp.net Membership,Code First,所以我有两个模型: public class User { [Key] public int Id {get;set;} public Group myGroup {get;set;} } public class Group { public int id public ICollection<User> Users {get;set;} } 然后: Group myGroup = context.Group.Find(c

所以我有两个模型:

public class User 
{ 
    [Key]
    public int Id {get;set;}

    public Group myGroup {get;set;}  
}

public class Group 
{
    public int id 
    public ICollection<User> Users {get;set;} 
}
然后:

Group myGroup = context.Group.Find(currentUser.Group);

要加载组对象并在以后使用它,例如myGroup.Id。

如果您使用的是实体框架,则代码缺少几个项

首先,将外键关系添加到用户类中,如下所示:

public int GroupId { get; set; }
public virtual Group myGroup {get;set;} 
其次,将您的组属性更改为虚拟,如下所示:

public int GroupId { get; set; }
public virtual Group myGroup {get;set;} 

这应该可以做到,但您可能也应该使Group类的Users属性虚拟化。

无论您如何尝试,请向我们展示。添加了我现在的尝试方式。我做了这两件事,但仍然得到相同的错误。用户组实际上是ASP.Net Identity 2.0,这可能就是原因。数据库中的键映射正确,但由于某些原因,我无法获取GroupID字段的值。@Ivan那么您的用户类是否继承自IdentityUser?您可能还需要Group类中id的[Key]属性。这不在问题中?我的错,抱歉!另外,看起来我的服务器上的另一个安装不知怎么搞砸了cookies,我试图从另一个应用程序中提取用户的数据,不知道这是怎么发生的。尝试使用固定名称值,现在可以使用了!谢谢大卫和哈伊姆抽出时间!