我在mvc2应用程序中设置了实体关系,这样每个用户都有一个角色,每个角色可以有很多用户。像这样:
Roles Users
-------- ---------
RoleID-- UserID
\
Name --> RoleID
这是一个非常基本的多对一关系,在数据库中实施并反映在我的实体关系图中。但是,当我尝试获取用户的角色(user.Role.Name
)时,它始终为null,我在数据库中看到用户的角色设置为有效ID。这是我第一次尝试使用实体,因为我以前一直使用LINQ2SQL,这只是让我困惑。
做什么?
这是我的edmx文件的屏幕截图
http://cl.ly/a9c088698369a54fc770
在数据库中,用户表具有RoleID属性(不确定为什么它没有在图中显示),我可以自由地从用户遍历到角色,并且已知它是一对多的关系编译器,但在尝试查看用户对象时它只是返回null。
编辑:
这是我使用的查询
User user = db.Users.SingleOrDefault(u => u.Username == username);
user.Role.Name
我的用户对象不为null,其任何其他属性都是可见的,因为看不到该角色,每个用户都有一个角色。