В таблице базы данных PostgreSQL есть столбец (nodeCoordinates) где хранятся координаты (тип geography). Данный столбец связан с моделью в приложении ASP.NET Core MVC:
[Column("nodeCoordinates", TypeName = "geography (point)")]
public IPoint NodeCoordinates { get; set; }
При запросе с помощью EF Core данные загружаются без проблем:
Node node = await _context.Node
.Select(n => new Node
{
IdNode = n.IdNode,
NodeCoordinates = n.NodeCoordinates
})
.FirstOrDefaultAsync(n => n.IdNode == id);
То есть в поле NodeCoordinates переменной node есть координаты:
Но при возврате Json:
return Json(node);
Возникает ошибка: SyntaxError: JSON.parse: end of data after property value in object at line 1 column 215 of the JSON data
Необработанные данные выглядят так: {"idNode":695, "nameNode":null, "idTypeNode":null, "idStation":0, "barCodeNode":null, "nodeCoordinates":{"coordinateSequence":{"dimension":3,"ordinates":7,"count":1},"coordinates":[{"x":65.29806667,"y":55.4389,"z":"NaN"
То есть нет закрывающихся скобок. Почему так происходит? Какой тип нужно использовать, чтобы возвращать Json с координатами?
Выяснилось, что так происходит из-за циклической ссылки. Ошибка: Self referencing loop detected for property 'CoordinateValue' with type 'GeoAPI.Geometries.Coordinate'
Данные которые приходят из БД:
Проблема решается игнорированием циклических ссылок при сериализации:
string nodeJSON = JsonConvert.SerializeObject(node,
new JsonSerializerSettings()
{
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
});
Но непонятно почему так происходит.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
есть PictureBox1 который расположен на форме и он производит движение по таймеру
В конструкторе объекта класса осуществляется подключение к БД MySQL, в деструкторе подключение закрываетсяДопустимо ли подобное в C#?
Моя проблема заключается в том, что у меня есть несколько тегов и они одинаковыеМне необходимо сделать парсинг первого тега из этих нескольких...
У меня микросервисное API на dotnet core 22 Изучал и брал в пример: https://github