這是一個奇怪的。我試圖通過MVC控制器將Google地圖中的多邊形保存到MS SQL中。問題是,我第一次做到這一點,它的工作原理,第二次它給我的錯誤:SQL DBGeography第二次插入失敗
The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 3 ("@2"): The supplied value is not a valid instance of data type geography. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision.
我使用的EntityFramework 6.1.3,代碼第一。下面的提交線出現錯誤:
var newPoly = new GenericPolygon()
{
Name = webShape.Name,
PolyShape = shapePolygon,
IsEnabled = true,
IsDeleted = false
};
_unitOfWork.PolygonRepository.Add(newPoly);
_unitOfWork.Commit();
的SQL表結構相同,不同之處在於它具有一個int ID標識列,以及類,該名稱是一個varchar(255)。 PolyShape列屬於地理類型。
的shapePolygon變量的定義如下,與類添加只讀屬性稱爲「LongLat」,這是用於從谷歌的LatLong切換到MS LongLat格式:
var shapePolygon = DbGeography.PolygonFromText("POLYGON((" + webShape.LongLat + "))", 4326);
的犯線本身調用數據庫上下文保存方法(我使用UOW模式以減少代碼):
this.context.SaveChanges();
我不能爲我的生命弄清楚爲什麼它的工作原理一次,然後不再,除非我重新啓動VS(在服務器上運行帶有IIS Express - SQL 2008 R2 Enterprise的VS 2013) R)。
任何幫助或指針將:-)