Código da estrutura da entidade Truncando primeiro meus decimais

Estou usando o Entity Framework 6.x usando a abordagem Code First em um aplicativo MVC 5. Nessa situação específica, meu modelo (entre outras coisas) contém duas propriedades denominadas Latitude e Longitude:

[Required, Range(-90, +90)]
public decimal Latitude { get; set; }

[Required, Range(-180, +180)]
public decimal Longitude { get; set; }

E quando realizei a migração, obtive algo parecido com isto

CreateTable("ResProperty"), c => new {
        :
    Latitude = c.Decimal(nullable: false, precision: 10, scale: 8),
    Longitude = c.Decimal(nullable: false, precision: 11, scale: 8),
        :
})
... other stuff

então latitude e longitude têm 8decimal dígitos. O primeiro com 2 números inteiros (máximo de 90) e o segundo com 3 números inteiros (máximo de 180).

Depois de executar o comando Update-Database, as colunas da minha tabela são mostradas como:

Latitude decimal(10,8)
Longitude decimal(11,8)

isso me parece bom. Agora, na minha opinião, tenho um mapa e código Javascript que permite ao usuário reposicionar o marcador. Isso funciona bem também. Quando o marcador é reposicionado, os campos Latitude e Longitude são preenchidos com o valor atualizado que (Javascript) possui mais de 12 dígitos decimais. Isso não importa AFAIK, porque minha escala é de 8 casas decimais.

Depois que o botão enviar é pressionado e o método Criar ou Editar POST é chamado, examino a instância do modelo e confirmo que os valores reais passados no modelo para o controlador estão corretos, eles têm dígitos decimais mais do que suficientes (aqueles que o código Javascript Lugar, colocar). Portanto, o valor está correto.

Agora ... o problema é que, após a execução do db.SaveChanges (), o banco de dados é atualizado - e eu confirmei que uma gravação / atualização real ocorreu - mas, de alguma forma, internamente, o EF desconsidera meus valores reais e grava latitude / longitude truncada arredondado para APENAS DOIS dígitos decimais, portanto, minha Latitude mostra no DB como 09.500000000 todos os outros dígitos decimais são zerados porque parece ter ocorrido um arredondamento.

// Prior to SaveChanges()
Latitude = 9.08521879
Longitude = -79.51658792
// After SaveChanges()
Latitude = 9.08000000
Longitude = -79.51000000

Por que está arredondando se eu dei a escala e a precisão corretas e a coluna também tem a escala e a precisão corretas? por que o SaveChanges está alterando meus valores?

Encontrei este post (http://weiding331.blogspot.com/2014/01/entity-framework-decimal-value.html), que é o mesmo problema, mas não sei como corrigir isso (se houver), porque já realizei várias migrações e adições de dados depois que a tabela em questão foi "migrada".

Resumindo

O tipo de dados do modelo está correto (decimal)O código de migração do banco de dados possui a precião / escala correta (lat 10/8 lon 11/8)As colunas do banco de dados SQL têm a precisão / escala correta (lat 10/8, long 11/8)Os valores passados no modelo têm pelo menos 8 dígitos decimais para latitude e longitudea gravação / atualização real do valor ocorre no banco de dados sem erros, mas ...Os valores registrados no banco de dados para essas duas colunas são truncados para DOIS dígitos decimais e mostram os outros dígitos decimais menos significativos como zero (0)

questionAnswers(1)

yourAnswerToTheQuestion