在尝试遍历关系时,我的实体框架表对象为null

时间:2012-01-26 15:05:43

标签: c# entity-framework

我的实体框架图(.edmx文件)中表示了以下表格

Users
 - UserID
 - Username
 - UserGroupID

Groups
 - GroupID
 - GroupName

在我的代码中,我检索User对象的有效实例,并且我试图遍历关系以获取Groups表,以检索GroupName,但每次,Groups对象都为null。 UserGroupID存在于Groups表中,所以我不确定为什么会这样。

Visual Studio intellisense知道存在的关系并允许我尝试它,但在运行时,'Groups'实例为null。

  Users users= (Users)e.Row.DataItem;
  string groupName = users.Groups.GroupName;

在这种情况下,Groups为null,我不知道为什么。可能的原因是什么?

由于 凯文

3 个答案:

答案 0 :(得分:1)

您可能想要阅读此内容,当涉及到延迟加载时,实体似乎与Linq-To-SQL的行为不同

http://www.singingeels.com/Articles/Entity_Framework_and_Lazy_Loading.aspx

如何加载相关项:http://msdn.microsoft.com/en-us/library/bb896272.aspx

答案 1 :(得分:1)

看起来您正在尝试从数据绑定事件中访问组,并且在绑定之前未加载组数据。您很可能需要“包含”如下所示的群组。

var users = entity.Users.include("Groups").where(x => x.UserID == 20);

答案 2 :(得分:0)

可能是延迟加载已禁用。

初始化上下文时添加以下行

context.ContextOptions.LazyLoadingEnabled = true;

无论如何,您应该考虑使用什么策略从数据库中提取日期