SQL 服务器地理结果格式

SQL Server geography result format

使用 SQL Server Management Studio:

declare @g geography
set @g = geography::Point(-77.1851436,39.1065236,4326)
select @g

returns

0xE6100000010C14C48A64D94B53C04820B990A28D4340

这个结果是什么格式?我知道这不是 STAsBinary() - returns

0x01010000004820B990A28D434014C48A64D94B53C0

有没有办法使用 C# 创建 0xE61... 值?

这是定义的特殊二进制格式 here(如果对该格式的详细信息感兴趣,您可以在那里下载 PDF)。您可以像这样在 C# 中创建这样的值(参考 Microsoft.SqlServer.Types 程序集):

var pt = SqlGeography.Point(-77.1851436, 39.1065236, 4326);    
var binary = pt.Serialize().Value;
var hexString = "0x" + BitConverter.ToString(binary).Replace("-", "");

结果类型为 Microsoft.SqlServer.Types.SqlGeography.Point

看到这个link