Mam system, który w zasadzie ma zrobić kwerendę tak:Korzystanie Dapper z typami SQL Przestrzennych jako parametr
SELECT * FROM MyTable WHERE @parameter.STIntersects(MyGeometryColumn)
Jest to dość proste do zrobienia przy użyciu parametrów wanilia SQL, wystarczy aby utworzyć parametr w nietypowym sposób (gdzie zmienna Builder jest SqlGeometryBuilder którego używam, aby utworzyć prostokąt):
command.Parameters.Add(new SqlParameter
{
UdtTypeName = "geometry",
Value = builder.ConstructedGeometry,
ParameterName = "@paremeter"
});
teraz, gdy próbuję to zrobić za pomocą elegancki, pojawia się błąd, że nie może dowiedzieć się, jak użyć tego jako parametru. Każdy, kto ma to działa, lub jakieś wskazówki, jak to włączyć? Mam obejście, ale wymaga to użycia reprezentacji ciągów i przekonwertowania tego do typu geometrii w mojej kwerendzie SQL. Naprawdę nie chcę tego.
Aby odpowiedzieć na komentarz, wyświetlany jest błąd "Parametr członka typu Microsoft.SqlServer.Types.SqlGeometry nie może być użyty jako wartość parametru". Innymi słowy, dapper nie wie, jak traktować obiekt SqlGeometry jako parametr.
Jaki jest błąd, który otrzymujesz? –