Pessoal,

Estou criando uma aplicação sendo o Entity Framework a tecnologia de acesso a dados.

Neste projeto eu crio um Entity Data Model(*.edmx) e depois eu faço a extensão de uma das classes do meu modelo.

Sabendo que esta classe possui propriedade publicas, como eu conseguiria alterar a nomenclatura das propridades do meu modelo na classe que foi extendida?

Exibições: 188

Respostas a este tópico

Thaís,

Não creio que você consiga "alterar" as propriedades, mas você pode criar uma propriedade que extenda as propriedades já existentes. Por exemplo:

Vamos supor que você tenha uma classe chamada Clientes e que nela tenha uma propriedade chamada Endereco e vc queira "modificar" para Address, você pde criar uma propriedade extendida chamada Address que por sua vez retorne o resultado da propriedade Endereco:

public partial class Clientes{
get {
public string Address { return this.Endereco }
}
}

Eu uso bastante esse recurso para criar propriedades customizadas em meus projetos.
Oi André,

Era isso mesmo que eu precisava. Obrigada!

[]'s,
Thaís
Ola André,
Como você faz para garantir que os desenvolvedores não utilizaram a propriedade Endereço?

Vamos supor que na propriedade Address você faz algumas validações antes de submeter para a propriedade original Endereco.

Ou você não garante que todos utilizaram a propriedade Endereço?

[]'s,
Fernando Gonçalves

André Gusmão disse:
Thaís,

Não creio que você consiga "alterar" as propriedades, mas você pode criar uma propriedade que extenda as propriedades já existentes. Por exemplo:

Vamos supor que você tenha uma classe chamada Clientes e que nela tenha uma propriedade chamada Endereco e vc queira "modificar" para Address, você pde criar uma propriedade extendida chamada Address que por sua vez retorne o resultado da propriedade Endereco:

public partial class Clientes{
get {
public string Address { return this.Endereco }
}
}

Eu uso bastante esse recurso para criar propriedades customizadas em meus projetos.
Opa não sou o André mas vamos la, o atributo endereco você deixa como private, assim os desenvolvidores vão ter acesso apenas a Address (que é a propriedade pública). Regra básica de encapsulamento de OO. Qualquer dívida estamos ai!!!

Abraços.

Denis
Ola Denis,
O detalhe aqui não são as regras de encapsulamento OO. O detalhe é o arquivo EDMX gerado pelo Entity Framework, pois não posso mexer neste arquivo (para alterar a propriedade de public para private) uma vez que posso ter que remove-lo do projeto e cria-lo novamente.

Se eu modificar a propriedade para private direto no arquivo EDMX, simplesmente perco tudo que fiz se precisar remove-lo e adiciona-lo novamente (E isso é necessário devido a um BUG do Entity Framework).

Por isso tenho que resolver a questão de modificar o nome da propriedade ou modificar de public para private em uma Partial Class a parte. Eis a dúvida aqui.

Como alterar de public para private via Partial Class ou como renomear uma propriedade criada no arquivo EDMX via partial Class.

[]'s,
Fernando Gonçalves

Denis Petri disse:
Opa não sou o André mas vamos la, o atributo endereco você deixa como private, assim os desenvolvidores vão ter acesso apenas a Address (que é a propriedade pública). Regra básica de encapsulamento de OO. Qualquer dívida estamos ai!!!

Abraços.

Denis
Qual o EF que você esta usando? Pois se estiver usando o VS2010 poderá usa classes poco para fazer o mapeamento. Alias não aconselho a utilização do EF antes da versão 4, deixa muito a desejar em relação a OO.
Estou usuando o EF 3, vou dar uma olhada no que você passou e qualquer dúvida volto a postar aqui no grupo.

Obrigado.

[]'s,
Fernando Gonçalves

Denis Petri disse:
Qual o EF que você esta usando? Pois se estiver usando o VS2010 poderá usa classes poco para fazer o mapeamento. Alias não aconselho a utilização do EF antes da versão 4, deixa muito a desejar em relação a OO.

RSS

© 2019   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço