在SQL Server和库项目之间共享空间代码
问题描述:
我们使用SQL Server CLR与我们的webapp结合使用,主要用于编写复杂的检查约束。在SQL Server和库项目之间共享空间代码
我需要编写一个与空间数据一起工作的类,它将在SQL Server中的CLR UDF和实体框架之间共享。
对于实体框架,我使用DbGeography。我将如何在CLR UDF中表示空间类型?我如何将它抽象出来,使它在两个地方都能正常工作?
答
由于MSDN页面上注意到Mapping CLR Parameter Data,你应该分别使用接受GEOGRAPHY
/GEOMETRY
数据作为输入参数SQLCLR对象和/或传回作为返回值/的结果集列是SqlGeography/SqlGeometry,类型。
只是一些想法 - 内置类型'SqlGeography'和'SqlGeometry'在'Microsoft.SqlServer.Types'中您可以通过将Microsoft.SqlServer.Types.dll添加到您的项目中来引用它们(它位于SDK /在您的SQL Server安装目录中的Assemblies文件夹)。您可以使用'Parse'和'ToString' /'AsText'方法在'DbGeography'和'SqlGeography'之间进行映射。 –