实体框架查询:从记录中访问外键(导航)数据

时间:2009-09-16 00:45:32

标签: entity-framework

我是EF的新手,我有两张桌子,第一张名为ContestEntry,第二张与ContestEntry有一对多的关系。我正在尝试访问比赛条目,然后从那里获取相关的项目信息。这是我正在使用的代码。

ContestEntry cEntry =
        Ctx.ContestEntries.Include("Item").Where(ce => ce.ID == 4).First();

问题是当我在调试器中查看它时,Item关系为NULL。

我可能错过了一些不确定的事情。任何帮助,将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:3)

在你的问题中,你提到秒表是“项目”,但在你的LINQ查询中,你包括“项目” - 只是一个错字?

另外,加载引用实体的另一种方法是:

ContestEntry cEntry =
    Ctx.ContestEntries.Include("Item").Where(ce => ce.ID == 4).First();

if(!cEntry.Items.IsLoaded)
{
   cEntry.Items.Load();
}

如果您有1:n导航属性,您应该能够检查它是否已被加载,如果没有,则在需要时根据需要加载它。

马克