Algumas técnicas para alterar a nomeclatura das suas classes geradas automaticamente são extremamente importantes para manter a coerência de seu projeto.

Vejamos um exemplo prático

Uma classe gerada automaticamente para esta tabela seria mais ou menos assim:

using Paulovich.Data;

namespace Paulovich.Business
{

[Table("T_BLOGS")]
public class T_BLOGS : Persist
{

#region fields & properties

[PrimaryKeyField(IsIdentity = true)]
public int CODBLOG { get; set; }

Field
public string TITULO { get; set; }

Field
public string LINK { get; set; }

Field
public DateTime? DATA_CRIACAO { get; set; }

#endregion

#region constructors

public T_BLOGS()
: base()
{
}

public T_BLOGS(params object[] keys)
: base(keys)
{
}

#endregion

}
}


Bom, não é apenas uma questão estética, mas conceitual. É perfeitamente normal, que no banco de dados sejam usados PREFIXOS para as entidades, as vezes até UPERCASE e coisas do tipo. Também não me parece estranho usar nomes no plural. Porém uma classe gerada desta forma ficaria um tanto quanto bizarra.

Imagine fazer algo do tipo:

...
TBLOGS blog = new TBLOGS();
blog.DATA_CRIACAO = DateTime.Now;
...

Para evitar casos como este, veja as regras para renomear propriedades de classes usando Paulovich.Data.

* Classe:
As classes podem ser renomeadas livremente desde que o atributo Table esteja definido com o nome da tabela a que se refere aquela classe.

Table("T_BLOGS")
public class Blog : Persist
{
....
}

* Propriedades (CASE de caracteres):
As propriedades assim como as classes podem ser alteradas quanto ao seu CASE de caracteres. Ou seja a propriedade CODBLOG pode ficar da seguinte forma sem problema algum.

PrimaryKeyField(IsIdentity = true)
public int CodBlog { get; set; }

* Propriedades (Alteração de nome):
Em alguns caso é necessário alterar o nome das propriedades por completo, não bastando apenas a alteração de CASE. Neste casos usamos o atributo Column do Field para definir o nome da coluna da tabela que é representado pela propriedade e ficamos livres para alterar o nome da mesma.

Field(Colum = "DATA_CRIACAO")
public DateTime? DataDeCriacao { get; set; }

É isso aí, agora você não tem desculpa para não manter uma coerência em suas classes.

Last edited Mar 9, 2010 at 2:38 PM by ivanpaulovich, version 1

Comments

No comments yet.