Bạn có thể có phiên bản không khớp trên cụm loại. Đây là một vấn đề đã biết giữa các phiên bản 10 và 11. Rất tiếc, thông báo lỗi không bao gồm thông tin phiên bản, đó là lý do tại sao nó trông như vô nghĩa!
Để giải quyết vấn đề này, bạn có thể giải mã hóa biểu diễn nhị phân của loại, tức là tương tự như thế này (nếu cột địa lý của bạn là cột đầu tiên trong tập kết quả):
var geo = SqlGeography.Deserialize(reader.GetSqlBytes(0));
Có những cách giải quyết khác, bao gồm thực hiện chuyển hướng ràng buộc cho hội đồng.
Thông tin thêm tại đây: https://connect.microsoft.com/SQLServer/feedback/details/685654/invalidcastexception-retrieving-sqlgeography-column-in-ado-net-data-reader