我使用带有ADO.NET实体数据模型(EF6)的Visual Studio 2013创建了一个新项目。
现在我必须使用一些动态数据功能(比如访问MetaTable对象),所以我添加了这段代码:
MetaModel model = new MetaModel();
model.RegisterContext(() =>
{
return ((System.Data.Entity.Infrastructure.IObjectContextAdapter)new KiwiJuiceEntities()).ObjectContext;
}, new ContextConfiguration() { ScaffoldAllTables = true });
但是我遇到了这个错误:
Type of context 'System.Data.Entity.Core.Objects.ObjectContext' is not supported
请注意,项目的参考已更新为EF6(system.data.entity.core)
答案 0 :(得分:8)
已发布EF6的动态数据提供程序和EntityDataSource控件的新预览。请检查一下,它对我有用。
注册提供者:
MetaModel model = new MetaModel();
model.RegisterContext(
new Microsoft.AspNet.DynamicData.ModelProviders.EFDataModelProvider(
() => new KiwiJuiceEntities()
),
new ContextConfiguration() { ScaffoldAllTables = true }
);
答案 1 :(得分:4)
DynamicData不支持实体框架6,因此降级到EF 5'解决'问题。
答案 2 :(得分:3)
是
EF 6没有
System.Data.Objects.ObjectContext
。 EF 6已经搬走了 某些类型,包括来自ObjectContext
的{{1}} 进入System.Data.Entity.dll
,并更改其名称空间。事实 您收到此错误表明您没有尝试重新编译 您的应用程序,您只需替换EntityFramework.dll
和 希望是最好的。那不行。您需要将代码更新为 使用EF 6:您需要删除您的引用EntityFramework.dll
,并更新您的代码以引用新代码 类型。可能有可能参考
System.Data.Entity.dll
属性在某个库中 你正在使用,但很可能它将在你自己的代码中。错误 消息(在您未在问题中包含的部分)应该告诉我们 你来自哪里。
参考文献: