2

我已经按照指示在这里使用SqlGeography类型的ServiceStack OrmLite v 4.0.56: https://github.com/ServiceStack/ServiceStack.OrmLite/wiki/SQL-Server-TypesServiceStack OrmLite不检索SqlGeography场

SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory); 
SqlServerConverters.Configure(SqlServer2012Dialect.Provider); 

(而不是Web应用程序)

这里是我的DataModel的类:

[DataContract] 
[Schema("dbo")] 
public class BusinessEntity 
{ 
    [DataMember, PrimaryKey, AutoIncrement] 
    public Int16 BusinessEntityId { get; set; } 
    ... 
    [DataMember] 
    public SqlGeography LatLong { get; set; } 
} 

当我检索使用OrmLite这些记录,所有的LatLong为null,但有数据数据库:

enter image description here

我的测试是简单地检索所有记录:

return Db.Select<DataModel.dbo.BusinessEntity>(); 

它看起来像安装的NuGet包时发生了错误,但是,没有运行时错误(我一直安装nuget包时出现此错误):

试图收集软件包依赖关系信息 'ServiceStack.O rmLite.SqlServer.Converters.4.0.56'相对于 项目'Services \ Web \ SO.Services.Data.Tests',目标为 '.NETFramework,Version = v4.6.1'尝试解析依赖项 包'ServiceStack .OrmLite.SqlServer.Converters.4.0.56'与 DependencyBehavior'Lowest'解决安装包的操作 'ServiceStack.OrmLite.SqlServer.Converters.4.0.56'解决的操作为 安装包'ServiceStack.OrmLite.SqlServer.Converters .4.0.56' 包'Microsoft.SqlServer.Types.11.0.2'已存在于文件夹 'C:\ Users \ cklepeis \ documents \ visual studio 2015 \ Projects \ SO \ packages' 已添加软件包'Microsoft.SqlServer .Types.11.0.2'改为'packages.config' 执行脚本文件'C:\ Users \ cklepeis \ documents \ visual studio 2015 \ Projects \ SO \ packages \ Microsoft.SqlServer.Types.11.0.2 \ tools \ install.ps1'... Where-Object:无法绑定参数'FilterScript'。无法将 类型为“System.String”的“Name”值转换为键入“S ystem.Management.Automation.ScriptBlock”。在 C:\ Users \ cklepeis \ documents \ visual studio 2015 \ Projects \ SO \ packages \ Microsoft.SqlServer.Types.11.0.2 \ tools \ install.p s1:11 char:50 + $ folderx86 = $ sqlServerTypes.ProjectItems |其中< < < <名称当量的 “x86” + CategoryInfo:InvalidArgument:(:) [凡-对象],ParameterBindingException + FullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.WhereObjectCommand 位置对象:无法绑定参数“FilterScript ”。无法将 类型为“System.String”的“Name”值转换为键入“S ystem.Management.Automation.ScriptBlock”。在 C:\ Users \ cklepeis \ documents \ visual studio 2015 \ Projects \ SO \ packages \ Microsoft.SqlServer.Types.11.0.2 \ tools \ install.p s1:17 char:50 + $ folderx64 = $ sqlServerTypes。ProjectItems |其中< < < <名称当量 “64” + CategoryInfo:InvalidArgument:(:) [凡-对象],ParameterBindingException + FullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.WhereObjectCommand 位置对象:无法绑定参数“FilterScript ”。无法将 类型为“System.String”的“Name”值转换为键入“S ystem.Management.Automation.ScriptBlock”。在 C:\ Users \ cklepeis \ documents \ visual studio 2015 \ Projects \ SO \ packages \ Microsoft.SqlServer.Types.11.0.2 \ tools \ install.p s1:23 char:46 + $ cppLinkx86 = $ folderx86.ProjectItems |其中< < < <名称当量 “msvcr100.dll” + CategoryInfo:InvalidArgument:(:) [凡-对象],ParameterBindingException + FullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.WhereObjectCommand 位置对象:无法绑定参数'FilterScript'。无法将 类型为“System.String”的“Name”值转换为键入“S ystem.Management.Automation.ScriptBlock”。在 C:\ Users \ cklepeis \ documents \ visual studio 2015 \ Projects \ SO \ packages \ Microsoft.SqlServer.Types.11.0.2 \ tools \ install.p s1:30 char:46 + $ sqlLinkx86 = $ folderx86.ProjectItems |其中< < < <名称当量 “SqlServerSpatial110.dll” + CategoryInfo:InvalidArgument:(:) [凡-对象],ParameterBindingException + FullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.WhereObjectCommand 位置对象:无法绑定参数'FilterScript'。无法将 类型为“System.String”的“Name”值转换为键入“S ystem.Management.Automation.ScriptBlock”。在 C:\ Users \ cklepeis \ documents \ visual studio 2015 \ Projects \ SO \ packages \ Microsoft.SqlServer.Types.11.0.2 \ tools \ install.p s1:37 char:46 + $ cppLinkx64 = $ folderx64.ProjectItems |其中< < < <名称当量 “msvcr100.dll” + CategoryInfo:InvalidArgument:(:) [凡-对象],ParameterBindingException + FullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.WhereObjectCommand 位置对象:无法绑定参数'FilterScript'。无法将 类型为“System.String”的“Name”值转换为键入“S ystem.Management.Automation.ScriptBlock”。在 C:\ Users \ cklepeis \ documents \ visual studio 2015 \ Projects \ SO \ packages \ Microsoft.SqlServer.Types.11.0.2 \ tools \ install.p s1:44 char:46 + $ sqlLinkx64 = $ folderx64.ProjectItems |其中< < < <名称当量 “SqlServerSpatial110.dll” + CategoryInfo:InvalidArgument:(:) [凡-对象],ParameterBindingException + FullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.WhereObjectCommand

AutoHides:假标题: Microsoft.SqlServer.Types收藏: {Microsoft.VisualStudio.Platform.WindowManagement.DTE.WindowBase, Microsoft.VisualStudio.Platfo rm.WindowManagement.DTE.WindowBase,Microsoft.VisualStudio.Platform.WindowManagement.DTE.Window Base,Microsoft.VisualStudio.Platform.Wi ndowManagement.DTE.WindowBase ...} CommandBars:{URL工具栏,F1消歧工具栏} ContextAttributes:System。__ComObject DTE: 系统.__ ComObject文件:HWND: 6425562高度:1671 IsFloating:假 类:工具左:1674可连接
:假LinkedWindowFrame: Microsoft.VisualStudio.Platform.WindowManagement.DTE.WindowBase LinkedWindows:对象:系统.__ ComObject ObjectKind:{E8B06F52-6D01-11D2-AA7D-00C04F990343}项目 :项目项:选择:顶级
:283类型:vsWindowTypeToolWindow可见
:真实宽度:1785的WindowState: vsWindowStateMaximize HasBeenDeleted:假事件
:Microsoft.VisualStudio.Platform.WindowManagement.DTE.WindowEvents VisibilityEvents: Microsoft.VisualStudio.Platform.WindowManagement.DTE.WindowVisibilityEvents 的Rect:1674.0625,283.020833333333,1785,1671 OutstandingEventCount:0

安装成功' Microsoft.SqlServer.Types 11.0.2'至 SO.Services.Data.Tests包 'ServiceStack.OrmLite.SqlServer.Converters.4.0.56'已存在于 文件夹'C:\ Users \ cklepeis \ documents \ visual studio 2015 \ Projects \ SO \ packages'添加包 'ServiceStack.OrmLite.SqlServer.Converters.4.0.56'至 'packages.config'成功安装 'ServiceStack.OrmLite.SqlServer.Converters 4.0.56'至 SO.Services.Data.Tests ==========已完成======== ==

回答

2

我没有看到安装ServiceStack.OrmLite.SqlServer.Converters NuGet包的任何问题:

Attempting to gather dependencies information for package 'ServiceStack.OrmLite.SqlServer.Converters.4.0.56' with respect to project 'ConsoleApplication4', targeting '.NETFramework,Version=v4.5' 
Attempting to resolve dependencies for package 'ServiceStack.OrmLite.SqlServer.Converters.4.0.56' with DependencyBehavior 'Lowest' 
Resolving actions to install package 'ServiceStack.OrmLite.SqlServer.Converters.4.0.56' 
Resolved actions to install package 'ServiceStack.OrmLite.SqlServer.Converters.4.0.56' 
Adding package 'Microsoft.SqlServer.Types.11.0.2' to folder 'C:\src\wip\ConsoleApplication4\packages' 
Added package 'Microsoft.SqlServer.Types.11.0.2' to folder 'C:\src\wip\ConsoleApplication4\packages' 
Added package 'Microsoft.SqlServer.Types.11.0.2' to 'packages.config' 
Executing script file 'C:\src\wip\ConsoleApplication4\packages\Microsoft.SqlServer.Types.11.0.2\tools\install.ps1'... 


AutoHides    : False 
Caption    : Microsoft.SqlServer.Types 
Collection   : {Microsoft.VisualStudio.Platform.WindowManagement.DTE.WindowBase, 
         Microsoft.VisualStudio.Platform.WindowManagement.DTE.WindowBase, 
         Microsoft.VisualStudio.Platform.WindowManagement.DTE.WindowBase, 
         Microsoft.VisualStudio.Platform.WindowManagement.DTE.WindowBase...} 
CommandBars   : {URL Toolbar, F1 Disambiguation Toolbar} 
ContextAttributes  : System.__ComObject 
DTE     : System.__ComObject 
Document    : 
HWnd     : 32967448 
Height    : 1060 
IsFloating   : False 
Kind     : Tool 
Left     : 74 
Linkable    : False 
LinkedWindowFrame  : Microsoft.VisualStudio.Platform.WindowManagement.DTE.WindowBase 
LinkedWindows   : 
Object    : System.__ComObject 
ObjectKind   : {E8B06F52-6D01-11D2-AA7D-00C04F990343} 
Project    : 
ProjectItem   : 
Selection    : 
Top     : 254 
Type     : vsWindowTypeToolWindow 
Visible    : True 
Width     : 2357 
WindowState   : vsWindowStateMaximize 
HasBeenDeleted  : False 
Events    : Microsoft.VisualStudio.Platform.WindowManagement.DTE.WindowEvents 
VisibilityEvents  : Microsoft.VisualStudio.Platform.WindowManagement.DTE.WindowVisibilityEvents 
Rect     : 73.5,253.5,2357,1060 
OutstandingEventCount : 0 



Successfully installed 'Microsoft.SqlServer.Types 11.0.2' to ConsoleApplication4 
Adding package 'ServiceStack.Interfaces.4.0.56' to folder 'C:\src\wip\ConsoleApplication4\packages' 
Added package 'ServiceStack.Interfaces.4.0.56' to folder 'C:\src\wip\ConsoleApplication4\packages' 
Added package 'ServiceStack.Interfaces.4.0.56' to 'packages.config' 
Successfully installed 'ServiceStack.Interfaces 4.0.56' to ConsoleApplication4 
Adding package 'ServiceStack.Text.4.0.56' to folder 'C:\src\wip\ConsoleApplication4\packages' 
Added package 'ServiceStack.Text.4.0.56' to folder 'C:\src\wip\ConsoleApplication4\packages' 
Added package 'ServiceStack.Text.4.0.56' to 'packages.config' 
Successfully installed 'ServiceStack.Text 4.0.56' to ConsoleApplication4 
Adding package 'ServiceStack.Common.4.0.56' to folder 'C:\src\wip\ConsoleApplication4\packages' 
Added package 'ServiceStack.Common.4.0.56' to folder 'C:\src\wip\ConsoleApplication4\packages' 
Added package 'ServiceStack.Common.4.0.56' to 'packages.config' 
Successfully installed 'ServiceStack.Common 4.0.56' to ConsoleApplication4 
Adding package 'ServiceStack.OrmLite.4.0.56' to folder 'C:\src\wip\ConsoleApplication4\packages' 
Added package 'ServiceStack.OrmLite.4.0.56' to folder 'C:\src\wip\ConsoleApplication4\packages' 
Added package 'ServiceStack.OrmLite.4.0.56' to 'packages.config' 
Successfully installed 'ServiceStack.OrmLite 4.0.56' to ConsoleApplication4 
Adding package 'ServiceStack.OrmLite.SqlServer.4.0.56' to folder 'C:\src\wip\ConsoleApplication4\packages' 
Added package 'ServiceStack.OrmLite.SqlServer.4.0.56' to folder 'C:\src\wip\ConsoleApplication4\packages' 
Added package 'ServiceStack.OrmLite.SqlServer.4.0.56' to 'packages.config' 
Successfully installed 'ServiceStack.OrmLite.SqlServer 4.0.56' to ConsoleApplication4 
Adding package 'ServiceStack.OrmLite.SqlServer.Converters.4.0.56' to folder 'C:\src\wip\ConsoleApplication4\packages' 
Added package 'ServiceStack.OrmLite.SqlServer.Converters.4.0.56' to folder 'C:\src\wip\ConsoleApplication4\packages' 
Added package 'ServiceStack.OrmLite.SqlServer.Converters.4.0.56' to 'packages.config' 
Successfully installed 'ServiceStack.OrmLite.SqlServer.Converters 4.0.56' to ConsoleApplication4 
========== Finished ========== 

如果这些安装问题仍然存在,你可以尝试删除你的NuGet /packages文件夹和clearing your NuGet cache所以下次你安装ServiceStack.OrmLite.SqlServer.Converters它将再次从NuGet重新下载所有软件包。

使用SQL Server特定类型的,你需要使用SqlServer2012Dialect.Provider,还可以指定你使用SQL Server 2012中的连接字符串,如:

SqlServerConverters.Configure(SqlServer2012Dialect.Provider); 

var dbFactory = new OrmLiteConnectionFactory(
    "Server=localhost;Database=test;User Id=test;Password=test;Type System Version=SQL Server 2012", 
    SqlServer2012Dialect.Provider); 

然后您就可以使用正常的SQL Server特定类型,例如下面这个例子:

db.DropAndCreateTable<BusinessEntity>(); 

db.Insert(new BusinessEntity 
{ 
    BusinessEntityId = 1, 
    LatLong = SqlGeography.Point(40.6898329, -74.0452177, 4326) 
}); 

db.Select<BusinessEntity>().PrintDump(); 

打印出人口SqlGeography记录:

[ 
     { 
       BusinessEntityId: 1, 
       LatLong: 
       { 
         IsNull: False, 
         STSrid: 4326, 
         Lat: 40.6898329, 
         Long: -74.0452177, 
         Z: Null, 
         M: Null, 
         HasZ: False, 
         HasM: False 
       } 
     } 
] 
+0

添加 “类型系统版本= SQL Server 2012的” 连接字符串并获得成功。 –