2010-03-16 9 views
6

Estoy tratando de ejecutar el análisis de código en un ensamblado que contiene un modelo de entidad (archivo edmx). En las propiedades del proyecto, he marcado la opción "Suprimir resultados del código generado", pero sigo recibiendo muchos errores de CA relacionados con el código EF generado automáticamente.CA: Suprime los resultados del código generado que no funciona en VS2010 beta 2

¿Alguien ha experimentado esto? ¿Y hay una solución alternativa?

Respuesta

7

Bueno, "Suprimir los resultados del código generado" realmente significa "No mirar los tipos con GeneratedCodeAttribute". El generador de código de EF no ha agregado esto históricamente (aunque se lo he sugerido al equipo). Pero usted puede agregarlo si use custom T4.

+0

Eso lo explica en ese momento. ¡Gracias! –

+0

¿Qué sucede cuando actualiza el modelo? tienes que agregar el atributo nuevamente? –

+0

@Juan, no, solo necesita cambiar la T4 una vez. –

10

Simplemente ponga el atributo en su definición de clase.

Pero cómo hacerlo, ya que su archivo puede ser anulado en cualquier momento. Use un archivo separado, ya que todas las clases generadas son clases parciales. Abra un archivo por separado y escriba algo como:

[GeneratedCode("EntityModelCodeGenerator", "4.0.0.0")] 
public partial class YourEntitiesContextName : ObjectContext 
{ 
} 

Esto omitirá el análisis del código en su clase particular generada. StyleCop, por ejemplo, es más inteligente y no toca los archivos que tienen .designer/.generated parte en su nombre o regiones que tienen generated palabra en su nombre.

+1

Sin embargo, esto impedirá que FxCop verifique cualquier código personalizado que agregue. En cambio, EF lo hace en cada propiedad individual, de modo que el código personalizado sigue estando marcado. –

+0

@ Craig: Eso es verdad. Pero dado que este es mi T $ y sé que no estoy agregando código adicional a mis clases, está bien. Pero punto tomado. Muy valioso comentario. +1 por eso. –

Cuestiones relacionadas