Kompilierte Abfrage Keine implizite Referenzkonvertierung in ObjectContext

8

Ich erstelle einen Delegaten, um alle Albeneinträge in der Datenbank abzurufen. Ich habe den gleichen Weg in einem anderen Projekt verwendet, aber aus irgendeinem Grund bekomme ich diesmal einen Fehler.

Habe ich einen Schritt verpasst? Ich bin nicht sicher, warum dieser Fehler erscheint.

Code

%Vor%

Fehler

Fehler 1 Der Typ 'CodyData.Diagram.CodySolutionEntities' kann nicht als Typ parameter 'TArg0' in the generic type or method 'System.Data.Objects.CompiledQuery.Compile<TArg0,TResult>(System.Linq.Expressions.Expression<System.Func<TArg0,TResult>>)'. There is no implicit reference conversion from 'CodyData.Diagram.CodySolutionEntities' to 'System.Data.Objects.ObjectContext'. C:\Users\Cody\Documents\CMBS\CodySolution\CodyData\Delegates\PhotoDelegates.cs 13 13 CodyData

verwendet werden     
Cody 11.01.2013, 22:08
quelle

1 Antwort

16

Die Fehlermeldung zeigt an, dass CodySolutionEntities nicht von ObjectContext abgeleitet ist. Dies ist ein Problem, da CompiledQuery nur mit ObjectContext funktioniert. In diesem Fall muss CodySolutionEntities von einem Objekt DbContext abgeleitet werden, das zu diesem Zeitpunkt empfohlen wird Kontextobjekt zu verwenden .

CompiledQuery hat wahrscheinlich in der Vergangenheit funktioniert, weil Entity Framework Versionen vor 4.1 ein Objekt erstellt haben, das von ObjectContext anstelle von DbContext abgeleitet wurde, damit Sie Ihre Entitäten verwalten können.

Wie diese Post erklärt, wenn Sie in der Lage sind zu zielen. NET 4.5 können Sie EF 5 verwenden, und Sie werden nicht mehr das CompiledQuery benötigen, da es kompilierte LINQ to Entity-Abfragen automatisch zwischenspeichert. Wenn nicht, dann sollten Sie versuchen, auf ObjectContext zurückzugreifen, aber bevor Sie das tun, stellen Sie sicher, dass Ihre Einstellung nicht einfach kompiliert oder Büste .

    
gowansg 12.01.2013, 05:53
quelle