Pergunta

Existe uma maneira de assumir o construtor de classes do Entity Framework?Quero poder ter meu próprio construtor de classes para poder criar algumas propriedades para chamar outros métodos na materialização ou tornar as classes de entidade parciais.

Foi útil?

Solução

Na verdade eles já estão em aulas parciais.Ver MSDN

Outras dicas

System.Data.Entity.Design.EntityClassGenerator, é o tipo usado no VS para gerar a camada de objeto a partir de seu arquivo .edmx e é o tipo usado por EdmGen.exe para gerar a camada de objeto a partir de um arquivo .csdl.Abaixo listei as 3 maneiras pelas quais você pode afetar o código gerado.A terceira opção requer que você mesmo chame EntityClassGenerator.Você pode fazer com que seu código seja executado automaticamente no VS, como um SingleFileGenerator, por usando esta técnica apresentado por Sanjay.

  1. Adicione código aos tipos por meio aulas parciais
  2. Adicione o código ao métodos parciais que são chamados pelas classes geradas
  3. Enganche o eventos de geração de código para injetar código diretamente nas propriedades e tipos à medida que são gerados.Veja o Danny postagem no blog Por exemplo

Acrescentarei que você não só pode abordar sua própria aula aulas parciais àqueles emitidos pelo Entity Framework, mas você também pode escrever todos os métodos parciais criado pelo código gerado.

Ou seja.Haverá muitos códigos de métodos parciais que serão chamados, mas o método em si no código gerado não será realmente implementado.Para isso você pode escrever um método parcial para capturar eventos quando as propriedades mudam e tal.Não é uma maneira terrível de lidar com algumas regras de negócios.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top