Mapeando o tipo smallint no entity framework code first
Fala pessoal! Dica rápida.
Essa semana tive um problema de mapeamento de uma tabela no entity framework 6 e resolvi compartilhar com vocês.
Estava fazendo o mapeamento de uma table cujo o campo estava no formato smallint no SQL Server e na minha classe C# eu declarei o tipo int. Ao fazer uma consulta na tabela recebi o seguinte erro:
Conversão especificada não é válida ou Specified cast is not valid
Fiz alguma pesquisas e achei algumas soluções como colocar o código abaixo no OnModelCreating:
modelBuilder.Entity().Property(x => x.Propriedade).HasColumnType("SMALLINT");
Ou então declarar a propriedade com o tipo Int16 nas propriedades da classe de mapeamento.
Bom… Nenhuma dessa opções funcionou comigo. Se você quiser fazer este mapeamento de forma rápida e sem dor de cabeça basta declarar o tipo short na classe de sua tabela e “voilá”, mapeamento feito sem dor de cabeça.
public short NomePropriedade { get; set; }
Veja mais sobre o tipo short aqui na msdn
até a próxima!
Boa Tarde Tiago, Estava com este mesmo problema e também já tinha tentado essas possibilidades. Mas com sua dica com o tipo short funcionou perfeitamente. Obrigado.
Fala Bruno!
Que bom que ajudou cara. Espero que próximos posts também ajude!
abraço!