【发布时间】:2011-07-14 08:41:03
【问题描述】:
我有一个系统,它基本上必须执行这样的查询:
SELECT * FROM MyTable WHERE @parameter.STIntersects(MyGeometryColumn)
这在使用普通 SQL 参数时非常简单,您只需以非典型方式创建参数(其中构建器变量是我用来创建矩形的 SqlGeometryBuilder):
command.Parameters.Add(new SqlParameter
{
UdtTypeName = "geometry",
Value = builder.ConstructedGeometry,
ParameterName = "@paremeter"
});
现在,当我尝试使用 dapper 执行此操作时,我收到一个错误,它无法弄清楚如何将其用作参数。任何有此工作的人,或有关如何启用此功能的任何指示?我确实有一个解决方法,但这涉及使用字符串表示并将其转换为我的 SQL 查询中的几何类型。我真的不想这样。
为了回答评论,我得到的错误是“Microsoft.SqlServer.Types.SqlGeometry 类型的成员参数不能用作参数值”。换句话说,dapper 不知道如何将 SqlGeometry 对象作为参数处理。
【问题讨论】:
-
您遇到的错误是什么?
标签: sql-server-2008 orm spatial dapper