Möglicherweise liegt ein Versionskonflikt in der Types-Assembly vor. Dies war ein bekanntes Problem zwischen den Versionen 10 und 11. Leider enthält die Fehlermeldung keine Versionsinformationen, weshalb sie wie Unsinn aussieht!
Um dies zu umgehen, können Sie die binäre Darstellung des Typs deserialisieren, z. B. so etwas (wenn Ihre geografische Spalte die erste in der Ergebnismenge ist):
var geo = SqlGeography.Deserialize(reader.GetSqlBytes(0));
Es gibt andere Problemumgehungen, z. B. das Ausführen einer Bindungsumleitung für die Assembly.
Weitere Informationen hier:https://connect.microsoft.com/SQLServer/feedback/details/685654/invalidcastexception-retrieving-sqlgeography-column-in-ado-net-data-reader