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

时间:2012-01-31 07:25:25

标签: c# winforms entity-framework data-binding

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

context.Parents.Local

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

帮助!

2 个答案:

答案 0 :(得分:4)

DbContextDbSet等是Entity Framework 4.1 / 4.2的一部分,其中包含EntityFramework NuGet包。仅使用.NET Framework,您只能根据this获得现在称为“核心EF运行时”的内容:

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

答案 1 :(得分:2)

如果查看上下文类的自动生成代码,它是否继承自DbContext或ObjectContext?

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

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

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

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