Het kan zijn dat de versie niet overeenkomt met de Types-assembly. Dit was een bekend probleem tussen versie 10 en 11. Helaas bevat de foutmelding geen versie-informatie, daarom lijkt het onzin!
Om dit te omzeilen, kunt u de binaire weergave van het type deserialiseren, d.w.z. zoiets als dit (als uw geografie-kolom de eerste is in de resultatenset):
var geo = SqlGeography.Deserialize(reader.GetSqlBytes(0));
Er zijn andere oplossingen, waaronder het doen van een bindende omleiding voor de assembly.