Linq-To-Entities包括

Pau*_*aul 3 linq-to-entities entity-framework lazy-loading eager-loading

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

proxy.User.Include("Role").First(u => u.UserId == userId)
Run Code Online (Sandbox Code Playgroud)

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

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

我的错误是这样的:

The specified type member 'Roles' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.
Run Code Online (Sandbox Code Playgroud)

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

proxy.User.Include(u => u.Role).First(u => u.UserId == userId)
Run Code Online (Sandbox Code Playgroud)

哪个好多了!

Mic*_*dox 5

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