EF6 上下文类型 'System.Data.Entity.Core.Objects.ObjectContext' 不被支持。
EF6 上下文类型 'System.Data.Entity.Core.Objects.ObjectContext' 不被支持。
我使用Visual Studio 2013创建了一个新项目,其中使用了ADO.NET Entity Data Model (EF6)。\n现在我需要使用一些动态数据功能(比如访问MetaTable对象),所以我添加了以下代码:\n
MetaModel model = new MetaModel(); model.RegisterContext(() => { return ((System.Data.Entity.Infrastructure.IObjectContextAdapter)new KiwiJuiceEntities()).ObjectContext; }, new ContextConfiguration() { ScaffoldAllTables = true });
\n但是我遇到了这个错误:\n`上下文类型“System.Data.Entity.Core.Objects.ObjectContext”不受支持`\n请注意,项目的引用已更新到EF6(system.data.entity.core)。
EF 6版本不支持'System.Data.Entity.Core.Objects.ObjectContext'的上下文类型。EF 6将一些类型(包括ObjectContext)从System.Data.Entity.dll移动到EntityFramework.dll,并更改了它们的命名空间。如果出现这个错误,说明你没有尝试重新编译你的应用程序,而是简单地替换了EntityFramework.dll并希望一切顺利。这样是行不通的。你需要更新你的代码以适应EF 6:删除对System.Data.Entity.dll的引用,并更新你的代码以引用新的类型。
这个错误可能是在你使用的某个库中引用了IObjectContextAdapter.ObjectContext属性,但最有可能是在你自己的代码中。错误信息(在你的问题中未包含部分)应该告诉你错误的来源。
参考资料:
- EF 6 System.Data.Objects.ObjectContext Error: https://stackoverflow.com/questions/14106286/14114136#14114136
- http://msdn.microsoft.com/en-US/data/dn469466
- http://support.microsoft.com/kb/2816241
我没有旧的引用,请注意错误报告正确的命名空间:System.Data.Entity.Core.Objects.ObjectContext...
是的,我明白了!我只是忽略了它!抱歉!
EF6 Type of context 'System.Data.Entity.Core.Objects.ObjectContext' is not supported是由于DynamicData不支持EntityFramework 6导致的。解决方法是将EF版本降级到EF5。
具体的降级操作是通过使用NuGet命令来进行的。首先,需要卸载当前的EF版本。可以使用以下命令来强制卸载EF:
Uninstall-Package EntityFramework -Force
然后,需要安装EF5版本。可以使用以下命令来安装EF5:
Install-Package EntityFramework -Version 5.0.0
更具体的操作步骤可以参考stackoverflow上的这个链接:stackoverflow.com/questions/10206090/...
EF6 Type of context 'System.Data.Entity.Core.Objects.ObjectContext' is not supported的问题出现的原因是在EF6中,不再支持使用ObjectCotnext作为上下文类型。解决方法是使用新的DbContext作为上下文类型。
解决方法示例代码如下:
public class KiwiJuiceEntities : DbContext
{
// your entity sets and configurations
...
}
通过将ObjectContex更改为DbContext,可以解决EF6 Type of context 'System.Data.Entity.Core.Objects.ObjectContext' is not supported的问题。