Использование 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 возникает следующее исключение:

Входящие табличные данные поток (TDS) Неверный поток протокола вызова удаленных процедур (RPC). Параметр 1 ("@p0"): предоставленное значение не является допустимым экземпляром географии типа данных. Проверьте исходные данные на наличие недопустимых значений. Примером недопустимого значения являются данные числового типа с масштабом, превышающим точность.

Похоже, что мультиточка, которую пытаются вставить, представляет собой MultipointZ code> и, возможно, отсутствует значение 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 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Рассчитайте расстояние Земли между полигонами географии в .NET [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как с помощью NetTopologySuite вычислить площадь многоугольника в квадратных метрах?
    Anonymous » » в форуме C#
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • NetTopologySuite – как определить, когда прямоугольник пересекает круг?
    Гость » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Гость
  • Преобразование геометрии в 4326 в NetTopologySuite
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

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