Ngữ cảnh khung thực thể đang tạo truy vấn cho tôi.Tôi có thể ghi đè trình tạo truy vấn khung Entity Framework không?
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());
này kết quả đầu ra chuỗi sau:
SELECT
[Extent1].[CityID] AS [CityID],
[Extent1].[geom] AS [geom],
[Extent1].[Name] AS [Name],
FROM [dbo].[Cities] AS [Extent1]
WHERE 3 = [Extent1].[CityID]
bảng của tôi là bao gồm cả cột không gian tên là hình học. Entity Framework không chứa các hàm hình học. Ví dụ đây là một chức năng hình học:
SELECT ST_AREA(geom) FROM Cities WHERE CityID = 3
Vì vậy, tôi không thể sử dụng phương pháp mở rộng bối cảnh như thế này:
context.Cities.Where(....)
là có thể, hoặc là có bất kỳ phương pháp khuôn khổ tổ chức để ghi đè lên các chức năng hình học.
Tôi không quen với việc thực hiện điều này bản thân mình nhưng tôi tin rằng bạn nên xem xét việc tạo nhà cung cấp LINQ của riêng bạn: https://msdn.microsoft.com/en-us/library/vstudio/bb546158%28v= vs.110% 29.aspx –
Bạn đang sử dụng phiên bản EF nào? EF hỗ trợ các đối tượng không gian, xem ví dụ http://weblog.west-wind.com/posts/2012/Jun/21/Basic-Spatial-Data-with-SQL-Server-and-Entity-Framework-50 – ken2k