2012-08-29 23 views
7

Disculpe si esto está en el lugar equivocado, sin embargo, creo que sí.¿La mejor práctica para editar el código generado automáticamente MVC3?

Entonces, al crear una aplicación de Internet MVC3 utilicé un primer método de base de datos y mis clases se generaron para mí. Soy nuevo en MVC3 y bastante nuevo en C# y visual studio, aunque tengo un poco de experiencia.

El código generado automáticamente advierte que la edición puede causar resultados inesperados y los cambios se eliminarán si se regenera el código. Según lo entiendo, eso significa cambios en la base de datos, volver a ejecutar los archivos tt o actualizar el modelo.

Sin embargo, ¿es una buena práctica editarlo, y solo mantener un registro de los cambios en caso de que necesite regenerar, o hay una mejor manera de hacerlo?

Gracias por cualquier ayuda.

Respuesta

11

Las clases generadas deberían ser partial clases, por lo que debería poder gestionar externamente las mejoras haciendo su propia clase partial con el mismo nombre y nombre.

+0

+1 palabra clave "parcial" es la forma correcta de administrar código personalizado y autogenerado. – TcKs

+0

Gracias, leerá sobre las clases parciales y cómo juntarlas. Lo aceptaré cuando me lo permita. :) – Bohdi

+0

Así que si tengo una 'prueba de página parcial' pública en un archivo de clase llamado pages.cs y la página de clase generada automáticamente se llama news_page pero también se llama 'partial class pagetest' ¿funcionará esto? ambos están en el modelo y ambos bajo el mismo proyecto de espacio de nombres. Modelos. Sin embargo, la clase parcial generada automáticamente se encuentra en el archivo .edmx. ¿la otra mitad de la clase parcial necesita ser movida allí también? – Bohdi

1

En la primera aproximación del modelo, utilizando la estrategia de generación de código predeterminada en su archivo EDMX, las clases generadas para usted DbContext y Entity clases son todas parciales.

Por lo tanto, dependiendo de su tipo de cambios, si desea extender estas clases generadas, simplemente cree una nueva clase parcial con su código personalizado en ella. Sus partes no serán sobrescritas por el generador de código.

Cuestiones relacionadas