为什么在使用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属性。
DbContext
, DbSet
等是Entity Framework 4.1 / 4.2的一部分,其中包含EntityFramework NuGet包。 仅使用.NET Framework,您只能拥有现在称为“Core EF Runtime”的内容:
简而言之,您需要安装EF 4.1 / 4.2。