当前位置:  开发笔记 > 数据库 > 正文

如何在Entity Framework中强制完成导航关系的加载?

如何解决《如何在EntityFramework中强制完成导航关系的加载?》经验,为你挑选了1个好方法。

好的,所以我第一次尝试使用ADO.NET实体框架.

我的测试用例现在包括一个SQL Server 2008数据库,其中包含2个表,Member和Profile,关系为1:1.

然后,我使用Entity Data Model向导从数据库中自动生成EDM.它生成了一个具有正确关联的模型.现在我想这样做:

ObjectQuery members = entities.Member;
IQueryable membersQuery = from m in members select m;
foreach (Member m in membersQuery)
{
   Profile p = m.Profile;
   ...
}

中途工作.我可以遍历所有成员.但我遇到的问题是m.Profile始终为null.MSDN库上LINQ to Entities的示例似乎表明我将能够无缝地遵循这样的导航关系,但它似乎不会那样工作.我发现如果我首先在某个单独的调用中加载配置文件,例如使用entities.Profile.ToList,那么m.Profile将指向一个有效的配置文件.

所以我的问题是,是否有一种优雅的方式来强制框架自动加载导航关系中的数据,或者我是否需要通过连接或其他方式明确地执行此操作?

谢谢



1> Gerald..:

好吧,我设法找到了我需要的答案http://msdn.microsoft.com/en-us/magazine/cc507640.aspx.以下查询将确保加载Profile实体:

IQueryable membersQuery = from m in members.Include("Profile") select m;

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有