Ответ 1
Вы правы, по сути, это так просто. DbGeography - это просто заглушенная версия SqlGeography, предназначенная для работы в Entity Framework. В нем реализованы самые популярные методы SqlGeography, но, как вы правильно отметили, не все.
В то время как два типа не могут быть напрямую связаны между собой, процесс их преобразования относительно прост в моменты, когда требуется дополнительная функциональность SqlGeography.
Например:
SqlGeography geog1 = SqlGeography.STPolyFromText('<coords>', srid);
SqlGeography geog2;
DbGeography dbGeog;
// SqlGeography to DbGeography
dbGeog = DbGeography.FromText(geog1.ToString(), srid);
// DbGeography to SqlGeography
geog2 = SqlGeography.Parse(dbGeog.AsText());