Linq-To-Entities包括

时间:2009-10-24 13:31:01

标签: entity-framework linq-to-entities lazy-loading eager-loading

我目前正在学习更多关于Linq-To-Entities的内容 - 特别是关于渴望和延迟加载的那一刻。

proxy.User.Include("Role").First(u => u.UserId == userId)

这应该加载用户以及用户拥有的任何角色。我有一个问题,但我也有一个问题。这只是为了解L2E而创建的一个简单模型

我的印象是这是为了让事情变得强烈 - 所以我为什么要写“角色”?看来,如果我更改了表的名称,那么这不会产生编译错误...

我的错误是:

The specified type member 'Roles' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

下面的解决方案允许我现在编写代码:

proxy.User.Include(u => u.Role).First(u => u.UserId == userId)

哪个更好!

1 个答案:

答案 0 :(得分:5)

  1. 包含是一个急切加载的提示,它不会强制急切加载。
  2. 在引用您希望由Include加载的内容之前,请务必检查IsLoaded属性。
  3. 有一些方法可以在include语句中放置强类型对象,但是这个问题没有解决方案可用于Entity Framework。 Google类似于:Entity Framework ObjectQueryExtension Include