为什么在使用Entity Framework时我看不到Local属性?

我知道我遗漏了一些完全明显的东西,但为什么我不能在使用EF上下文时看到属性Local ? 典型的在线示例如下所示:

context.Parents.Local

但是我无法看到Local属性。 根据我的理解,Local是DbSet类的成员,我不认为我在我的应用程序中使用DbSet。 我所知道的是我添加了对EntityFramework的引用, using System.Data.Entity ,我熟悉的其他一切工作正常。 除了Local不存在,我确实需要为DataGridView一些排序function。

救命!

如果查看上下文类的自动生成代码,它是inheritance自DbContext还是ObjectContext?

如果它inheritance自ObjectContext,则还需要执行一些步骤。

  • 在模型设计图面上,右键单击 – >添加代码生成项
  • 从左侧菜单中选择“代码”
  • 选择“ADO.NET DbContextGenerator”
  • 将项目命名为与模型相同(例如:’MyModel’)
  • 单击添加

两个* .tt文件将添加到您的项目中,名为MyModel.tt和MyModel.Context.tt。

重新编译之后,再次查看自动生成的上下文代码,它现在应该inheritance自DbContext。 您的Parents对象现在将是DbSet类型而不是ObjectSet,您现在可以使用Local属性。

DbContextDbSet等是Entity Framework 4.1 / 4.2的一部分,其中包含EntityFramework NuGet包。 仅使用.NET Framework,您只能拥有现在称为“Core EF Runtime”的内容:

简而言之,您需要安装EF 4.1 / 4.2。