我的实体框架图(.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,我不知道为什么。可能的原因是什么?
由于 凯文
答案 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;
无论如何,您应该考虑使用什么策略从数据库中提取日期