好的,所以我第一次尝试使用ADO.NET实体框架.
我的测试用例现在包括一个SQL Server 2008数据库,其中包含2个表,Member和Profile,关系为1:1.
然后,我使用Entity Data Model向导从数据库中自动生成EDM.它生成了一个具有正确关联的模型.现在我想这样做:
ObjectQuerymembers = 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将指向一个有效的配置文件.
所以我的问题是,是否有一种优雅的方式来强制框架自动加载导航关系中的数据,或者我是否需要通过连接或其他方式明确地执行此操作?
谢谢
好吧,我设法找到了我需要的答案http://msdn.microsoft.com/en-us/magazine/cc507640.aspx.以下查询将确保加载Profile实体:
IQueryablemembersQuery = from m in members.Include("Profile") select m;