Skip to content

Instantly share code, notes, and snippets.

@Braytiner
Last active February 7, 2020 13:54
Show Gist options
  • Save Braytiner/4f545c5bbc1a18cc967e6e596d153c73 to your computer and use it in GitHub Desktop.
Save Braytiner/4f545c5bbc1a18cc967e6e596d153c73 to your computer and use it in GitHub Desktop.
Correlação de tipos e annotations do C# para tipos do MySql
/**********************************************************************************************************************************
Enumerados
**********************************************************************************************************************************/
//Preenchimento obrigatório, com valor menor que dez e valor default
[Column(TypeName = "tinyint(2) default 1")]
public Pessoa Pessoa { get; set; } = Pessoa.Juridica;
//Sem preenchimento obrigatório, com valor menor que dez
[Column(TypeName = "tinyint(2)")]
public ModeloBalanca? ModeloBalanca { get; set; }
/**********************************************************************************************************************************
Booleanos
**********************************************************************************************************************************/
//Preenchimento obrigatório e valor padrão
[Column(TypeName = "tinyint(1) default 1")]
public bool ImprimirEmpresaEtiqueta { get; set; } = true;
//Não obrigatórios
public bool? CalcularCustosEntrada { get; set; };
/**********************************************************************************************************************************
Datas
**********************************************************************************************************************************/
//Com preenchimento obrigatório e valor padrão default para o momento da inclusão do registro na tabela
[Column(TypeName = "DateTime default CURRENT_TIMESTAMP")]
public DateTime DataCadastro { get; set; } = DateTime.Now;
//Sem preenchimento obrigatório
[Column(TypeName = "DateTime")]
public DateTime? UltimoPagamento { get; set; }
/**********************************************************************************************************************************
Inteiros
**********************************************************************************************************************************/
//Inteiro sem sinal, com preenchimento obrigatório
public uint MunicipioId { get; set; }
//Chaves estrangeiras: Inteiro sem sinal, com preenchimento obrigatório e com valor padrão
[Column(TypeName = "int(10) unsigned default 3303401")]
public uint MunicipioId { get; set; } = 3303401;
//Inteiro com sinal, com preenchimento obrigatório e sem valor padrão
public int Id { get; set; }
//Inteiro com sinal, com preenchimento obrigatório e com valor padrão
[Column(TypeName = "int(11) default 20")]
public int Inteiro4 { get; set; } = 20;
//Inteiro sem sinal, com preenchimento obrigatório e sem valor padrão
public uint Id { get; set; }
//Inteiro, sem preenchimento obrigatório
public int? Inteiro3 { get; set; }
//Ids de tabelas que não conterão muitos registros (Municipios, Cfop, CstIcms, etc...)
public ushort Id { get; set; }
//Inteiros pequenos com preenchimento obrigatório e valor default
[Column(TypeName = "smallint(5) default 300")]
public ushort IntervaloVerificacao { get; set; } = 300;
//Inteiros muito pequenos, sem sinal e com preenchimento obrigatório
public byte MenorInteiro { get; set; }
//Inteiros muito pequenos, sem sinal e sem preenchimento obrigatório
public byte? MenorInteiro { get; set; }
//Inteiros muito pequenos, com sinal e sem preenchimento obrigatório
public sbyte MenorInteiroComSinal { get; set; }
//Inteiros muito pequenos, sem sinal, com preenchimento obrigatório e valor padrão
[Column(TypeName = "tinyint(2) default 4")]
public byte TamanhoCodigoSequencial { get; set; } = 4;
/**********************************************************************************************************************************
Decimais
Para campos com decimais o MySql funciona da seguinte forma: DECIMAL(8,2) = o tamanho total de dígitos do campo será 8. Sendo 6
casas para a parte antes da vírgula e 2 casas para decimais
**********************************************************************************************************************************/
//Com preenchimento obrigatório e sem valor padrão (menores que um milhão)
[Column(TypeName = "decimal(8,2)")]
public decimal PrecoVenda { get; set; }
//Sem preenchimento obrigatório e sem valor padrão (menores que um milhão)
[Column(TypeName = "decimal(8,2)")]
public decimal PrecoVenda { get; set; }
//Com preenchimento obrigatório e com valor padrão (menores que um milhão)
[Column(TypeName = "decimal(8,2) default 0")]
public decimal PrecoVenda { get; set; } = 0;
//Percentuais obrigatórios com três casas decimais, menores que mil e valor padrão
[Column(TypeName = "decimal(6,3) default 0")]
public decimal JurosAtraso { get; set; }
//Percentuais obrigatórios, com duas casas decimais menores que mil
[Column(TypeName = "decimal(5,2)")]
public decimal JurosAtraso { get; set; }
/**********************************************************************************************************************************
String
**********************************************************************************************************************************/
//Preenchimento obrigatório
[Required]
[MaxLength(60)]
public string Descricao { get; set; }
//Sem preenchimento obrigatório
[MaxLength(60)]
public string Descricao { get; set; }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment