net framework 4.0中地理sql server数据类型的C#等价物是什么
本文关键字:数据类型 server 是什么 等价物 sql framework net | 更新日期: 2023-09-27 18:00:12
net web应用程序使用.net 4.0框架。
我有一个存储过程,它在sql server 2008 R2中接受地理数据类型。
我想将C#代码中的数据插入SQL Server。
但我找不到应该在C#中使用哪种与SQLServer2008数据类型等效的数据类型。
这听起来可能很明显,但为什么不使用与SQL Server中安装的UDT相同的数据类型-SqlGeography
呢?
以下内容适用于SQL Server 2012实例。我无法针对SQL Server 2008进行测试,但我认为它应该可以正常工作:
using System;
using Microsoft.SqlServer.Types;
using System.Data.SqlClient;
using System.Data;
namespace ConsoleApplication4
{
class Program
{
static void Main()
{
var geom1 = SqlGeography.STGeomFromText(
new System.Data.SqlTypes.SqlChars(
"LINESTRING(-122.360 47.656, -122.343 47.656)"), 4326);
var geom2 = SqlGeography.STGeomFromText(
new System.Data.SqlTypes.SqlChars(
"LINESTRING(-100.0 45.0, -1420 49.0)"), 4326);
using(var conn = new SqlConnection(
@"Server=Server;Database=master;Integrated Security=SSPI;"))
{
using (var cmd = new SqlCommand(
"select @parm1.STIntersects(@parm2)", conn))
{
var p1 = cmd.Parameters.Add("@parm1", SqlDbType.Udt);
p1.UdtTypeName = "geography";
p1.Value = geom1;
var p2 = cmd.Parameters.Add("@parm2", SqlDbType.Udt);
p2.UdtTypeName = "geography";
p2.Value = geom2;
conn.Open();
Console.WriteLine(cmd.ExecuteScalar());
}
}
Console.ReadLine();
}
}
}
如果使用实体框架,则搜索的数据类型为DbGeography。
以下是关于DbGeography对象的一些详细信息->详细信息。
它不是DbGeography
类吗?
命名空间:System.Data.Spatial程序集:System.Data.Entity(在System.Data.Eentity.dll中)
https://msdn.microsoft.com/en-us/library/system.data.spatial.dbgeography.aspx