title: Deserializing DbGeometry with Newtonsoft.Json
body: <p>I'm building a SPA using Angular,Breeze and Web API 2 following the approach as outlined by John Papa in his latest PluralSight course.</p>
  
  <p>Everything works well and I can pull information, update, insert, delete back to the server. However I'm using Spatial Types, and when I try to update an entity with a spatial type I get the following error</p>
  
  <blockquote>
    <p>An exception of type 'Newtonsoft.Json.JsonSerializationException' occurred in 
        Newtonsoft.Json.dll but was not handled in user code</p>
    
    <p>Additional information: Error getting value from 'WellKnownValue' on
        'System.Data.Entity.Spatial.DbGeometry'.</p>
  </blockquote>
  
  <p>The inner exception seems to point to the fact that the WellKnownValue is null, its not though, as I have checked the JSON being sent to the server which is then sent to the Breeze ContextProvider and saved using the SaveChanges method.</p>
  
  <pre><code>{
  "entities": [
   {
    "TableKey": 2,
    "CaseName": "Mikhail Lermontov",
    "StartDate": "2013-06-11T00:00:00Z",
    "EndDate": null,
    "IsCurrent": true,
    "SRID": 109,
    "Shape": {
      "$id": "2",
      "$type": "System.Data.Entity.Spatial.DbGeometry, EntityFramework",
      "Geometry": {
        "$id": "3",
        "$type": "System.Data.Entity.Spatial.DbGeometryWellKnownValue, EntityFramework",
        "CoordinateSystemId": 2193,
        "WellKnownText": "POLYGON ((1695943 5462665, 1713098 5462665, 1713098 5449659, 1695943 5449659, 1695943 5462665))"
      }
    },
    "SpillLocation": "Marlborough Sounds",
    "Image": "http://www.nzmaritime.co.nz/images/lm5.jpg\r\n",
    "DefaultBaseMapKey": 2,
    "__unmapped": {
      "isPartial": false
    },
    "entityAspect": {
      "entityTypeName": "DatSpillCase:#Osiris.Model",
      "defaultResourceName": "DatSpillCases",
      "entityState": "Modified",
      "originalValuesMap": {
        "CaseName": "Mikhail Lermontov"
      },
      "autoGeneratedKey": {
        "propertyName": "TableKey",
        "autoGeneratedKeyType": "Identity"
      }
    }
  }
   ],
    "saveOptions": {}
  }
  </code></pre>
  
  <p>So my question is, is possible to deserialize DbGeometry types within the NewtonSoft library, and if not, what suggestions are there to get around that.</p>