[Entity Framework] Model First – Parte II – Tipos Complejos

Hola, en el anterior post de esta serie vimos a manera de introducción como se trabaja Model First con Entity Framework y quedamos en las propiedades escalares.

En esta entrada hablare sobre un tipo de propiedad muy interesante que manejan las entidades de Entity Framework y como se reflejan estas no solo en el EDMX sino en la base de datos.

– Propiedades de tipo complejo [Complex Type]

Sobre el proyecto que ya teníamos [el del post anterior], sobre la entidad que teníamos agregaremos una nueva propiedad del tipo Complex Type, que ha grandes rasgos se podría definir como un contenedor de propiedades escalares y de otras propiedades complejas siempre y cuando no incurra en referencias circulares [una definición mas formal aquí] . Para agregar una propiedad de este tipo sobre una entidad, lo podemos hacer de dos formas, tomar las propiedades que deseamos estén en un tipo complejo y crear un complex type a partir de estas:

 

O bien, en el Model Browser crear un tipo complejo y agregarle a este todas las propiedades que queramos, así:

Esto nos habrá creado en nuestro EDMX en la seccion del CSDL algo como:

Name=”NombrePropiedad” >
Type=”Int32″ Name=”NombrePropiedadEscalar” Nullable=”false” />
</ComplexType>

Y del lado del código que consume este modelo, vemos algo muy curioso… y es que podemos crear instancias de nuestras propiedades de tipo complejo 🙂 es decir, son una clase mas sin ser parte de nuestras entidades de dominio y con lo cual podemos pasar grandes cantidades de información sin pasar entidades completas, haciendo uso de los objetos que obtenemos a partir de estas.

– Crear una base de datos a partir de un modelo conceptual:

Ya para finalizar, veamos como podemos a partir de nuestro modelo conceptual generar una base de datos física en un motor SQL Server, si SQL Server :S resulta que en la versión 4.0 de esta tecnología el concepto de Model First solo aplica para este motor y el script generado por el wizard lo señala Script for SQL Server 2005, 2008, and Azure, en la web se encuentra poca documentación y lo único que he visto funciona, es definir los conection strings a mano y reconstruir algunas cosas en los xml del .EDMX.

En el Entity Data Model Designer hacemos click contrario y seleccionamos la opción Generate database from Model, ha continuación se despliega el Wizard para esta operación, generamos una nueva conexión a un almacén de datos Existente, este wizard nos muestra una preview del Script generado y al finalizar vemos que nos ha creado un archivo .SQL y que nos a abierto una ventana con este script, lo que sigue es abrir la conexión y ejecutar el script.

Una vez hecho esto, si vemos en nuestro SQL Server veremos que efectivamente se ha creado la tabla que deseábamos con las propiedades que habíamos enviado, y las propiedades de tipo complejo… pues se generan como cualquier otra columna.

Espero les sea de utilidad

Hasta el próximo post.

 

 

 

Anuncios
[Entity Framework] Model First – Parte II – Tipos Complejos

2 comentarios en “[Entity Framework] Model First – Parte II – Tipos Complejos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s