Anpassen von EF F # Query Translator

8

In einer Antwort auf meine andere Frage wurde mir gesagt, QueryExtensions zu verwenden. asynchrone Berechnungen mit F # und Entity Framework zu erreichen, und ich verwende diesen Rat erfolgreich.

Zum Beispiel habe ich die folgende Funktion:

%Vor%

das kann so verwendet werden:

%Vor%

Es wäre jedoch schön, meine neue Funktion als Abfrageausdruck zu verwenden. Ich habe das geschrieben:

%Vor%

Und versuche es so zu benutzen:

%Vor%

Dieser Code wird zwar kompiliert, löst jedoch zur Laufzeit die folgende Ausnahme aus:

  

System.NotSupportedException: Dies ist kein gültiger Abfrageausdruck. Die Methode 'Microsoft.FSharp.Control.FSharpAsync'1 [Entities.MyEntity] HeadAsync [MyEntity, IQueryable' 1] (Microsoft.FSharp.Linq.QuerySource'2 [Entities.MyEntity, System.Linq.IQueryable'1 [Entities. MyEntity]]) 'wurde in einer Abfrage verwendet, wird jedoch vom F # -Zu-LINQ-Abfrage-Übersetzer nicht erkannt. Überprüfen Sie die Spezifikation zulässiger Abfragen, und ziehen Sie in Betracht, einige der Operationen aus dem Abfrageausdruck zu entfernen

Ist also die Erweiterung des Standard-LINQ-Übersetzers möglich, oder sollte ich bei meiner bisherigen headAsync -Implementierung in Form einer gewöhnlichen Funktion bleiben, ohne mit QueryBuilder zu verkehren?

    
ForNeVeR 04.10.2015, 10:56
quelle

0 Antworten

Tags und Links