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
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 .
Tags und Links c# asp.net compiled-query objectcontext