V sestavě Types může dojít k neshodě verzí. Toto byl známý problém mezi verzemi 10 a 11. Chybová zpráva bohužel neobsahuje informace o verzi, proto to vypadá jako nesmysl!
Chcete-li to obejít, můžete deserializovat binární reprezentaci typu, tj. něco takového (pokud je váš sloupec geografie první v sadě výsledků):
var geo = SqlGeography.Deserialize(reader.GetSqlBytes(0));
Existují i jiná řešení, včetně provedení přesměrování vazby pro sestavení.
Více informací zde:https://connect.microsoft.com/SQLServer/feedback/details/685654/invalidcastexception-retrieving-sqlgeography-column-in-ado-net-data-reader