Sto costruendo un'API Web vata OD3 con il codice Entity Framework 6.0.Problema di serializzazione DbGeometry in Asp.net web api
Tutto funziona correttamente e posso eseguire operazioni CRUD sul server API.
Tuttavia sto usando Tipi spaziali e alcune delle mie entità hanno proprietà DbGeometry. Quando cerco di aggiornare/inserire un soggetto con un tipo di DbGeometry da un'applicazione client (solo una console per le prove) ottengo questo DataServiceRequestException:
Nessun costruttore senza parametri definiti per questo oggetto.
Mi ci è voluto un po 'ma ho identificato il tipo DbGeometry
come responsabile. Ho già guardato this topic here e feci una consuetudine JsonConverter
, dove ho applicato alla proprietà:
[Required]
[JsonConverter(typeof(DbGeometryConverter))]
[Column("geometria")]
public DbGeometry Geometria { get; set; }
che non ha funzionato. L'oggetto non è deserializzato sul server Web API a meno che non rimuova la proprietà DbGeometry
.
Ho anche provato a modificare il comportamento globale JSON serializzatore
var formatters = GlobalConfiguration.Configuration.Formatters;
var jsonFormatter = formatters.JsonFormatter;
jsonFormatter.SerializerSettings.Converters.Add(new DbGeometryConverter());
anche inutile. Ho davvero bisogno delle proprietà DbGeometry
. Cos'altro posso fare per aggirare questo problema?
Cosa si ottiene portando l'attributo Geometria come oggetto? Alla fine avrebbe funzionato per portare l'oggetto e fare la conversione in un Mapper. – Custodio
Hai trovato qualche soluzione a questo problema? –