获取外键的值 - 未将对象引用设置为对象的实例

时间:2014-05-26 17:29:28

标签: 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;} 
}

但是当我查询用户获取GroupID时 - 无论我如何尝试,我总是得到&#34;对象引用未设置为对象的实例&#34;。

有什么想法吗?

编辑:

我尝试从UserStore获取userID(

User currentUser = usrStore.FindByNameAsync(User.Identity.Name)

)然后:

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

要加载Group对象并稍后使用它(例如myGroup.Id)。

1 个答案:

答案 0 :(得分:0)

如果您使用的是Entity Framework,那么您的代码会丢失几个项目。

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

public int GroupId { get; set; }

其次,将您的Group属性更改为虚拟,如下所示:

public virtual Group myGroup {get;set;} 

应该这样做,但您也应该将Users类的Group属性设置为虚拟。