ausführen Ich habe beschlossen, eines meiner Projekte in Entity Framework 7 (rc1-final) zu verschieben. Ich ziele auf SQL Server und EntityFramework.MicrosoftSqlServer
Paket ist ebenfalls installiert.Ist es möglich, benutzerdefinierte SQL-Abfrage mit EF7
Ich habe nur ein Problem: Es scheint, als ob ich benutzerdefinierte SQL-Abfrage nicht ausführen kann, um einige Objekte aus der DB zu holen.
DatabaseFacade
Objekt (die über DbContext.Database
Eigenschaft zugegriffen werden kann) bietet eine Erweiterungsmethode ExecuteSqlCommand
(die nichts zurückgibt), aber es bietet keine SqlQuery<T>
Methode, die Objekte holen können. Beide Methoden waren in der guten alten EF 6 verfügbar, aber die neue EF 7 erklärt nur die erste.
Also, ist SqlQuery<T>
Methode noch hier (aber verschoben/umbenannt) oder es wurde komplett aus der neuen EF-Implementierung entfernt?
Natürlich ist es absolut möglich, es in einer ausführlichen Art zu lösen (mit SqlCommand
und seine ExecuteReader
Methode), aber ich bevorzuge es zu vermeiden.
Danke, aber ich weiß, über diese Methode schon, aber leider muss es IQueryable als Eingangsparameter. Wie ich weiß, sollte diese Methode zusammen mit einigen DbSet verwendet werden, die wiederum innerhalb von DbContext definiert werden sollten. Mein Fall ist ein wenig anders - ich möchte Objekte erhalten, die nicht in meinem DbContext vorhanden sind (d. H. Nur Abfrage ausführen und Objekt des Typs T für jede zurückgegebene Zeile erstellen). –
In diesem Fall verwenden Sie einfach den zugrunde liegenden SqlCommand wie in [diese Antwort] (http://stackoverflow.com/a/34191033/469777). –
Eigentlich verwende ich diesen Ansatz jetzt (Command + ExecuteReader). Es ist im Vergleich mit fehlenden SqlQuery ausführlich, aber es funktioniert natürlich. Übrigens, danke für deine Zeit und deine Antwort - es ist definitiv nützlich - schätze es. –