好的,所以我第一次尝试使用 ADO.NET 实体框架。
我现在的测试用例包括一个 SQL Server 2008 数据库,它有 2 个表,成员和配置文件,关系为 1:1。
然后我使用实体数据模型向导从数据库中自动生成 EDM。它生成了一个具有正确关联的模型。现在我想这样做:
ObjectQuery<Member> members = entities.Member;
IQueryable<Member> membersQuery = from m in members select m;
foreach (Member m in membersQuery)
{
Profile p = m.Profile;
...
}
哪个成功了。我能够遍历所有成员。但我遇到的问题是 m.Profile 始终为空。MSDN 库上的 LINQ to Entities 示例似乎表明我将能够无缝地遵循这样的导航关系,但它似乎不是那样工作的。我发现如果我首先以某种方式在单独的调用中加载配置文件,例如使用entities.Profile.ToList,那么m.Profile 将指向一个有效的配置文件。
所以我的问题是,是否有一种优雅的方式来强制框架自动加载导航关系中的数据,或者我是否需要通过连接或其他方式明确地做到这一点?
谢谢