2013-12-11 24 views
5

Mam nowy projekt utworzony przy użyciu programu Visual Studio 2013 z modelem danych jednostki podmiotu ADO.NET (EF6).EF6 Typ kontekstu "System.Data.Entity.Core.Objects.ObjectContext" nie jest obsługiwany

Teraz muszę korzystać z niektórych funkcji dynamicznych danych (takich jak dostęp do obiektu MetaTable), więc dodam ten kod:

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

ale mam ten błąd:

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

Note że projekt ma odniesienie zaktualizowane do EF6 (system.data.entity.core)

Odpowiedz

8

Nowy podgląd dostawcy dynamicznego danych i kontroli EntityDataSource dla EF6 został wydany. Sprawdź to, zadziałało to dla mnie.

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

Aby zarejestrować się z dostawcą:

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

Tak.

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.

Referencje:

+0

nie mam starą odniesienia, należy zanotować jego wadzie właściwą nazw: System.Data.Entity.Core.Objects.ObjectContext .. – gidanmx2

+0

Tak, widzę! Właśnie przeoczyłem! Przeprosiny! –

4

DynamicData zrobić nie EntityFramework support 6 Jeszcze więc obniżamy do EF 5 'rozwiązać' problem.

+0

Jak konkretnie "przeszedłeś na EF5"? –

+1

Odinstaluj-Package EntityFramework -Force, Install-Package EntityFramework -Version 5.0.0 zobacz: http://stackoverflow.com/questions/10206090/how-to-install-an-older-version-of-package-via-nuget – gidanmx2

+0

Obsługiwane w tej chwili: http://stackoverflow.com/a/22016040/842935 – danihp

Powiązane problemy