Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在.NETFramework4.0中,sql server数据类型的C#等价物是什么?_C#_Asp.net_Sql Server_Sql Server 2008_.net 4.0 - Fatal编程技术网

在.NETFramework4.0中,sql server数据类型的C#等价物是什么?

在.NETFramework4.0中,sql server数据类型的C#等价物是什么?,c#,asp.net,sql-server,sql-server-2008,.net-4.0,C#,Asp.net,Sql Server,Sql Server 2008,.net 4.0,net web应用程序使用.NET4.0框架 我有一个在SQLServer2008R2中接受地理数据类型的存储过程 我想将C代码中的数据插入SQL Server 但是我找不到我应该在C#中使用哪个数据类型,它相当于SQL Server 2008数据类型。如果您使用的是实体框架,那么您搜索的数据类型是DbGeography 下面是关于DbGeography object->的更多信息。这听起来很明显,但是为什么不使用与SQL Server中作为UDT安装的数据类型相同的数据类型呢 以下内容在SQL

net web应用程序使用.NET4.0框架

我有一个在SQLServer2008R2中接受地理数据类型的存储过程

我想将C代码中的数据插入SQL Server


但是我找不到我应该在C#中使用哪个数据类型,它相当于SQL Server 2008数据类型。

如果您使用的是实体框架,那么您搜索的数据类型是DbGeography


下面是关于DbGeography object->的更多信息。

这听起来很明显,但是为什么不使用与SQL Server中作为UDT安装的数据类型相同的数据类型呢

以下内容在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
类吗

命名空间:System.Data.Spatial 程序集:System.Data.Entity(在System.Data.Entity.dll中)


我假设字节[]。取决于您是否使用ADO.NET、实体框架等。DbGeography位于System.Data.Entity命名空间中,即实体框架。。。我不知道他是否在使用它……如果您使用的是EntityFramework,那么您应该为您的模型属性使用
DbGeography
,该属性在下面使用
SqlGeography
hood@ChrisSchaller-其他答案已经涵盖了这一点,但问题中仍然没有迹象表明OP是否使用EF。