我正在尝试DBGeography
通过 ado.net 插入类型,但没有运气。
这是我得到的错误:
不存在从对象类型 System.Data.Entity.Spatial.DbGeography 到已知托管提供程序本机类型的映射。
或者:
指定类型未在目标服务器上注册。System.Data.Entity.Spatial.DbGeography,EntityFramework,Version=6.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089。
这就是我从 db 获取它时所做的事情,并且效果很好:
dynamic temp = reader.GetValue(3);
var text = string.Format("POINT({0:R} {1:R})", temp.Long, temp.Lat);
var srid = temp.STSrid.Value;
this.Coordinates = System.Data.Entity.Spatial.DbGeography.PointFromText(text, srid);
但是插入不起作用:
updateCommand.Parameters.AddWithValue("@Coordinates", store.Coordinates);
// or ...
SqlParameter p = new SqlParameter();
p.ParameterName = "@Coordinates";
p.Value = store.Coordinates;
p.SqlDbType = System.Data.SqlDbType.Udt;
p.UdtTypeName = "geography";
updateCommand.Parameters.Add(p);
这里有什么问题?