Использование NetTopologySuite и EFCore для вставки объектов с типами географии SQL Server.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Использование NetTopologySuite и EFCore для вставки объектов с типами географии SQL Server.

Сообщение Anonymous »

У меня есть устаревший SQL-сервер, который использует тип данных «география» для таблицы для хранения данных с координатами X, Y, Z и M.
Устаревшие проекты C# использовали тип System Библиотека .Data.Entity.Spatial и собственная dll SQLServerTypes с типом DbGeography для сохранения этих записей в базе данных.
Я создаю новую утилиту в .NET8 для вставки записей и я не хочу зависеть от собственных DLL, поэтому я пытаюсь использовать для этого NetTopologySuite и объект MultiPoint.

Код: Выделить всё

 private MultiPoint CreateMultiPoint(DateTime departureTime, IEnumerable
 positions)
{

var coordinates = new List();
var points = new List();

var geometryFactory = NtsGeometryServices.Instance.CreateGeometryFactory(srid: 4326);

foreach (var position in positions)
{
var coordinate = new CoordinateZM(position.Lon, position.Lat, position.Fal,
(position.Svd - departureTime).TotalSeconds);

coordinates.Add(coordinate);

var point = new Point(coordinate) { SRID = 4326 };
points.Add(point);
}

return new MultiPoint(points.ToArray(), geometryFactory);
При сохранении объекта с этой мультиточкой в ​​dbcontext в EFCore возникает следующее исключение:

Код: Выделить всё

 The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 1 ("@p0"): The supplied value is not a valid instance of data type geography. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision.
Похоже, что мультиточка, которую пытаются вставить, представляет собой MultipointZ и, возможно, в ней отсутствует значение M.
Я пробовал множество различных способов построения фабрики геометрии, и ему может понадобиться помощь, поскольку ни один из них, похоже, не работает.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ography-ty
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Использование NetTopologySuite и EFCore для вставки объектов с типами географии SQL Server.
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Рассчитайте расстояние Земли между полигонами географии в .NET [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как с помощью NetTopologySuite вычислить площадь многоугольника в квадратных метрах?
    Anonymous » » в форуме C#
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • NetTopologySuite – как определить, когда прямоугольник пересекает круг?
    Гость » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Гость
  • Преобразование геометрии в 4326 в NetTopologySuite
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»