3

我目前正在学习更多关于 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)

哪个更好!

4

1 回答 1

5
  1. 包含是预加载的提示,它不会强制预加载。
  2. 在引用您希望被 Include 急切加载的内容之前,请务必检查 IsLoaded 属性。
  3. 有多种方法可以将强类型对象放入 include 语句中,但没有针对 Entity Framework 开箱即用的解决方案。谷歌类似:实体框架 ObjectQueryExtension 包括
于 2009-10-24T13:34:46.900 回答