Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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
Sql server 2008 在F#中,如何使用类型提供程序访问Sql Server地理数据类型?_Sql Server 2008_F#_Geography_Type Providers - Fatal编程技术网

Sql server 2008 在F#中,如何使用类型提供程序访问Sql Server地理数据类型?

Sql server 2008 在F#中,如何使用类型提供程序访问Sql Server地理数据类型?,sql-server-2008,f#,geography,type-providers,Sql Server 2008,F#,Geography,Type Providers,是否可以使用F#中的类型提供程序访问具有地理类型列的SQL Server 2008表 这是我的连接: type dbSchemaAnalyticsWeb = SqlDataConnection<"Data Source=sql2008;Initial Catalog=Analytics;User ID=USER;Password=PASSWORD;"> 在上面的代码中,字段GeoLocation引用SQLServer中的地理数据类型。但是,我收到一个错误“成员或对象构造函数'Loc

是否可以使用F#中的类型提供程序访问具有地理类型列的SQL Server 2008表

这是我的连接:

type dbSchemaAnalyticsWeb = SqlDataConnection<"Data Source=sql2008;Initial Catalog=Analytics;User ID=USER;Password=PASSWORD;">
在上面的代码中,字段GeoLocation引用SQLServer中的地理数据类型。但是,我收到一个错误“成员或对象构造函数'LocationData'没有参数或可设置的返回属性'GeoLocation'。是否有其他方法引用此字段或其他接口,或者此数据类型根本不可访问


注意,我使用的是Visual Studio 2012和.Net 4.5。

您使用的是LinqToSql提供程序,它不支持SqlGeography类型。请尝试使用实体框架提供程序

以下是我如何在我的一个项目中引用使用SqlGeography的数据库:

type internal Database = SqlEntityConnection<ConnectionStringName="DefaultConnection", LocalSchemaFile="Context.ssdl", ConfigFile="Web.config", ForceUpdate=true, Pluralize=true>
type internal Database=SqlEntityConnection
在大多数情况下,LinqToSql和实体框架提供程序非常相似。主要区别在于实体框架提供程序将类型公开为内部类型,而LinqToSql将内容公开


如果出于某种原因,您希望继续使用LinqToSql,那么有一些可能允许您执行您想要的操作。

谢谢。我通过添加插入/更新触发器找到了另一种解决方法。请参阅rheitzman的回答,此包不支持dotnetcore
type internal Database = SqlEntityConnection<ConnectionStringName="DefaultConnection", LocalSchemaFile="Context.ssdl", ConfigFile="Web.config", ForceUpdate=true, Pluralize=true>