Home > Español > Visual Studio Add-in para el Domain Service [Include()] attributo

Visual Studio Add-in para el Domain Service [Include()] attributo

A veces uno no tiene el lujo a desarrollar applicaciones desde el modelo de objectos. Eso significa que es necessario a obtener el modelo desde la base de data. Gracias a Microsoft, tenemos el Entity Framework o Linq2Sql para ayudarnos. Ya que estamos creando una applicacion de Silverlight, todavia no hemos terminado. Tenemos que usar WCF RIA Services para el transporte de nuestros cambios en la applicacion.
Tengo un problema como WCF RIA Services no esfuerza a mantener el modelo. Lo que pasa es cualquier momento que la base de data cambia, tengo que modificar varios archivos:

  1. Actualizar el Entity Framework (. edmx) o Linq2Sql (. dbml) con el esquema datebase cambios.
  2. Borrar el DomainService que has creado, incluyendo el “Service” archivo y el “.metadata” archivo.
  3. Genere el proyecto Web que aloja el modelo.
  4. Añadir un nuevo DomainService.
  5. Agregue todos los [Include()] atributos en el “.metadata” archivo.

Ahora estas es una experiencia muy dolorosa y cada vez que puede automatizar este lo voy a hacer. Esto nos lleva al asunto de este puesto, que es una manera de automatizar por lo menos la adición del [Include()] atributo en el archivo de “.metadata”. Mi solución esta basada aquí. Hice unos modificaciones para que podemos usarlo con proyectos que tienen carpetas y para que funciona en Visual Studio 2010 RTM.

Para crear una Add-in en Visual Studio 2010, coloca nueva solución y extensibilidad en el marco del “Otros tipos de proyectos” y luego “Visual Studio Add-in”, como se muestra a continuación:

El “template” de proyecto crea lo que se muestra a continuación con la excepción del archivo MetadataHelper.cs.

Tómese su tiempo para revisar lo que contiene el Connect.cs archivo y ya que hay lógica personalizada para conseguir el MetadataHelper.cs archivo.

Básicamente, el objetivo de este complemento es para que pueda actualizar el .edmx o .dbml y borrar y volver a crear el DomainService. Una vez que usted ha terminado, haga clic en el menú “Tools” en Visual Studio y seleccione MetadataAddin.

El Addin va a hacer un ciclo a través de todos sus proyectos en sus soluciones y todas sus carpetas en sus proyectos. Básicamente, se busca todos los archivos “.metadata”. Una vez que se encuentra el archivo, se crea un diccionario de los tipos de objectos expuestas a través el MetadataTypeAttribute. A continuación, busca cualquier “EntityCollection” o cualquier objecto que contenido en el diccionario como propiedades y agrega el [Include()] atributo.

Por último, he añadido el código que nos avisa cuando se termina la operación.

Cuando el proceso ha terminado todos sus archivos “.metadata” se cargarán y se podrá revisar los cambios realizados en los archivos.

Aquí está el link para el proyecto de ejemplo. He incluido un archivo README.txt en el proyecto para indicarle dónde debe poner el “Add-in”.

Espero que esto ayude!

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: