Gerardo Contijoch

Experiencias del día a día trabajando con .NET – ASP.NET, C#, ASP.NET MVC y demas…

Posts Tagged ‘schema’

Actualizar el esquema de un DataSet tipado en Visual Studio

Posted by Gerardo Contijoch en febrero 5, 2009

No tengo la costumbre de trabajar con DataSets tipados principalmente porque trabajo con DataReaders o DataTables no tipados. Me gusta tener acceso a los datos y controlar lo que se hace con ellos yo mismo, sin ninguna clase que me los formatee ni organice automáticamente. Sin embargo, hoy decidí darles una oportunidad dentro de un prototipo de aplicación ya que precisaba hacer algunos INSERTs y SELECTs sobre pocas tablas y no quería perder tiempo con SPs escritos a mano.

La verdad es que los DataSets tipados son ideales para prototipos simples y me vinieron muy bien, pero me encontré rápidamente con una limitación: no hay una manera sencilla de modificar su estructura para reflejar los cambios en la estructura de la DB (algo relativamente común en las primeras etapas de desarrollo). En realidad si la hay, pero a lo que me refiero es a que esperaba alguna opción en algún lugar del estilo ‘Update DataSet Schema’ o ‘Sync DataSet Schema’.

Buscando un poco encontré dos soluciones que parecen ser las más adecuadas para estos casos. La primera consiste simplemente en borrar las tablas del DataSet y volver a agregarlas a mano desde el Server Explorer, mientras que la segunda consiste en modificar las consultas a mano con las cuales se generaron las tablas del DataSet (seleccionando la opción Configure del menú contextual que aparece al hacer click derecho en la tabla dentro del editor de esquemas del DataSet).

El problema de ambas soluciones esta en que al realizar la actualización uno pierde todos los cambios que pudo haberle hecho a los DataSets y DataTables. Para arreglar esto, acá sugieren transformar las clases generadas por Visual Studio en clases parciales (agregando ‘partial’ a la definición de la clase) y agregar las modificaciones a esas clases (ahora parciales) dentro de otros archivos, diferentes de los que genera Visual Studio de manera automática. Así, cuando se regeneren los DataSets nuestros cambios no son eliminados. No tengo a mano una copia de Visual Studio 2005 para verificarlo, pero la versión 2008 ya genera los DataSets y DataTables como clases parciales por lo que nos ahorraríamos un paso en este caso.

Esperemos que en una próxima versión de Visual Studio haya alguna manera un poco mas ‘user friendly’ de hacer esto.

¡Nos vemos en el próximo post!

Publicado originalmente en https://gerardocontijoch.wordpress.com.

Posted in Visual Studio | Etiquetado: , , | 3 Comments »