2013-12-11 15 views
5

Ich habe ein neues Projekt mit Visual Studio 2013 mit einem ADO.NET Entity Data Model (EF6) erstellt.EF6 Art des Kontexts 'System.Data.Entity.Core.Objects.ObjectContext' wird nicht unterstützt

Jetzt muss ich einige Dynamic Data-Funktion verwenden (wie Zugang zu MetaTable Objekt), so füge ich diesen Code:

MetaModel model = new MetaModel(); 
     model.RegisterContext(() => 
     { 
      return ((System.Data.Entity.Infrastructure.IObjectContextAdapter)new KiwiJuiceEntities()).ObjectContext; 
     }, new ContextConfiguration() { ScaffoldAllTables = true }); 

aber ich habe diesen Fehler habe:

Type of context 'System.Data.Entity.Core.Objects.ObjectContext' is not supported 

Hinweis dass das Projekt die Referenz auf EF6 aktualisiert hat (system.data.entity.core)

Antwort

8

Eine neue Vorschau des Dynamic Data Provider- und EntityDataSource-Steuerelements für EF6 wurde veröffentlicht. Bitte schau es dir an, es hat für mich funktioniert.

http://blogs.msdn.com/b/webdev/archive/2014/01/30/announcing-preview-of-dynamic-data-provider-and-entitydatasource-control-for-entity-framework-6.aspx#

den Provider registrieren:

MetaModel model = new MetaModel(); 
model.RegisterContext(
    new Microsoft.AspNet.DynamicData.ModelProviders.EFDataModelProvider(
     () => new KiwiJuiceEntities() 
    ), 
    new ContextConfiguration() { ScaffoldAllTables = true } 
);  
3

Ja.

EF 6 does not have System.Data.Objects.ObjectContext . EF 6 has moved some types, including ObjectContext , from System.Data.Entity.dll into EntityFramework.dll , and changed their namespaces. The fact that you get this error suggests you haven't attempted to recompile your application, you've simply replaced EntityFramework.dll and hoped for the best. That won't work. You need to update your code to work with EF 6: you need to remove your references to System.Data.Entity.dll , and update your code to refer to the new types.

It just might be possible for the reference to the IObjectContextAdapter.ObjectContext property to be in some library you're using, but most likely it'll be in your own code. The error message (in the part you didn't include in your question) should tell you where it is coming from.

Referenzen:

+0

ich den richtigen Namensraum der Fehlerbericht nicht die alte Referenz haben, beachten Sie: System.Data.Entity.Core.Objects.ObjectContext .. – gidanmx2

+0

Ja, ich verstehe! Ich habe es einfach übersehen! Entschuldigung! –

4

Dynamic tun keine Unterstützung EntityFramework 6 noch so zu EF Herabstufung 5 'lösen' das Problem.

+0

Wie haben Sie speziell "auf EF5 downgraden"? –

+1

Uninstall-Paket EntityFramework -Force, Install-Package EntityFramework -Version 5.0.0 siehe: http://StackOverflow.com/Questions/10206090/How-to-Install-an-older-Version-of-Package-Via-Nugget – gidanmx2

+0

Derzeit unterstützt: http://StackOverflow.com/a/22016040/842935 – danihp