Entity Framework-Kontext generiert Abfragen für mich.Kann ich den Entity Framework-Abfragegenerator überschreiben?
var query = from c in context.Cities where c.CityID == 3 select c;
var objectQuery=query as System.Data.Objects.ObjectQuery;
Console.WriteLine(objectQuery.ToTraceString());
Dieser gibt die folgende Zeichenfolge:
SELECT
[Extent1].[CityID] AS [CityID],
[Extent1].[geom] AS [geom],
[Extent1].[Name] AS [Name],
FROM [dbo].[Cities] AS [Extent1]
WHERE 3 = [Extent1].[CityID]
Meine Tabelle räumliche Spalte namens Geometrie einschließlich. Entity Framework enthält keine Geometriefunktionen. Zum Beispiel ist dies eine Geometriefunktion:
SELECT ST_AREA(geom) FROM Cities WHERE CityID = 3
So konnte ich nicht Kontext-Extension-Methode wie folgt verwenden:
context.Cities.Where(....)
ist möglich, oder ist es eine Methode, Entity Framework geometrische Funktionen außer Kraft zu setzen.
Ich bin nicht vertraut mit der Umsetzung dieser selbst, aber ich glaube, Sie sollten in die Erstellung Ihrer eigenen LINQ-Anbieter suchen: https://msdn.microsoft.com/en-us/library/vstudio/bb546158%28v= vs.110% 29.aspx –
Welche EF-Version verwenden Sie? EF unterstützt räumliche Objekte, siehe zum Beispiel http://weblog.west-wind.com/posts/2012/Jun/21/Basic-Spatial-Data-with-SQL-Server-and-Entity-Framework-50 – ken2k