[英]Is Newtonsoft.JSON supported for .net Framework 4.6 in Xamarin.Android?
[英].NET 4.6 / Entity Framework : Spatial functions throw not supported
這可能是一個長鏡頭,我想我已經找到了答案,但是我想看看是否有人以不同的方式解決了這個問題。 使用實體框架順便說一句。
好的,我正在從數據庫中獲取地圖的多邊形(邊界),並希望直接減少通話中的點數。 很好,SqlServer實際上具有內置的空間功能“ Reduce”。
這是我的代碼:
data = (from c in context.Spatial_Zips
where zips.Contains(c.regionname)
select new Spatial_Zip() {
ID = c.ID,
regionname = c.regionname,
pcnameimp = c.pcnameimp,
geog = SqlSpatialFunctions.Reduce(c.geog, 100)
}).ToList();
太好了,一切正常,直到它真正達到了reduce函數。 mehmehmehm:引發不支持的異常。
好吧,我深入研究了一下,實際上遇到了這個參考資料:
看起來甚至沒有實現:
/// <summary>
/// Proxy for the function SqlServer.REDUCE
/// </summary>
[EdmFunction("SqlServer", "REDUCE")]
public static System.Data.Spatial.DbGeography Reduce(System.Data.Spatial.DbGeography geographyValue, System.Double? tolerance)
{
throw EntityUtil.NotSupported(System.Data.Entity.Strings.ELinq_EdmFunctionDirectCall);
}
現在我的問題是,是否有人知道如何使用實體框架在原始SQL中執行此語句?
我認為目前沒有其他選擇,還是存在?
數據庫實例是DbContext的屬性。 您可以使用Database類的SqlQuery方法發出原始SQL。
例如
var directQuery = context.Database.SqlQuery<Spatial_Zip>(sql, new object[] { }).ToList();
請訪問www.asp.net了解更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.