sábado, 25 de junio de 2011

Cómo configurar y extender una entidad

Introducción.

Inicialmente, todo el código que se genera en la solución esta basado en las entidades nativas de Entity Framework, pero es posible crear entidades totalmente personalizadas  y configurar las entidades de Entity Framework agregando propiedades personalizadas (CustomProperties).

A esto, le llamamos: Configuración del modelo y de las entidades.

image

Para que el código generado en el modelo SFS (SFSAdventureWorksModel.sfsedmx) no interfiera con el código personalizado de configuración, es necesario extender cada entidad mediante archivos similares al modelo sfsedmx, pero ubicados en la carpetaSFSAdventureWorkModel”. De esta manera cada vez que se re-genere el modelo no borrará los cambios que se han hecho en el modelo.

Por cada entidad a personalizar, se recomienda crear un archivo [Nombre de la entidad].sfsedmx y crear la estructura del modelo sin las entidades.

image

En el modelo original (SFSAdventureWorksModel.sfsedmx) deben encontrarse la entidad y copiar su estructura para pegarla en el archivo creado en la carpeta de extensibilidad.

image

Una vez que la estructura de la entidad está en el archivo de extensibilidad, pueden eliminarse las propiedades que no van a configurarse y solo dejar sobre las que se harán las adecuaciones.

image

El archivo de extensibilidad de la entidad tiene mayor importancia y afectará a la configuración original de la entidad.

image

Ahora es en este archivo Product.sfsedmx donde se pueden configurar cada una de las propiedades y atributos del modelo, para que las plantillas generadoras de código generen el código de acuerdo a esto.

Existen dos niveles de configuración: en atributos y en propiedades personalizadas.

Ejemplo de cómo configurar la visibilidad usando atributos.

Ejemplo de cómo configurar la validación de una expresión regular usando propiedades personalizadas (CustomProperties)

Conclusión.

La extensibilidad del modelo de generación de código permite que nuestra configuración no se mezcle con el código generado y siempre convivan armónicamente y se integren de forma transparente.

Esta es una gran diferencia a otros generadores de código que existen.

No hay comentarios.:

Publicar un comentario