2009-05-13 30 views
12

Pregunta realmente estúpida, lo siento, pero no puedo encontrarla en google (estoy seguro de que está en un screencast o algo así). Tengo un diagrama de DBML (clases de linq2sql) y he cambiado la base de datos subyacente. En VS2008, ¿cómo "actualizo" el diagrama? No hay opciones Ver -> Actualizar o Haga clic derecho -> Actualizar o Actualizar.Actualizar un diagrama DBML?

Tal como está ahora, tengo que volver a crear todas las clases de linq2sql cada vez que actualizo la base de datos subyacente.

Respuesta

8

haga clic derecho y seleccione "Ejecutar herramienta personalizada" (en el explorador de soluciones en dbml archivo)

+1

Bueno, eso es un poco no intuitivo. ¡Gracias! – Chris

+0

demonios, sí, me tomó un tiempo descubrir que la "herramienta personalizada" es en realidad lo que genera las calses :) –

+4

Eso no actualiza el archivo DBML con cambios en la base de datos. Activa el generador de código que genera el código C# o VB del archivo DBML. Los cambios en las bases de datos aún deben propagarse al archivo DBML de una forma u otra; vea mi respuesta. – KristoferA

5

Si usted quiere traer a los cambios de base de datos en su diagrama de DBML A continuación, puede:

a) eliminar las entidades cambiado del diagrama del diseñador y vuelva a arrastrarlos. Perderá cualquier personalización (por ejemplo, cambios de nombre de clase y propiedad, etc.).

b) actualizar manualmente el diagrama, añadir/eliminar las clases, propiedades de miembro, etc.

c) Utilizar una herramienta de terceros capaz de comparar y actualizar el archivo DBML con la base de datos subyacente. Una de esas herramientas es mi complemento, Huagati DBML/EDMX Tools. Agrega un conjunto de características al diseñador L2S en VS2008 y VS2010, incluyendo actualización/sincronización, comparación, cambio de nombre masivo, aplicación de reglas de nombre, documentación de propiedades/índices extendidos/etc., múltiples 'vistas' por diagrama dbml, etc.

+0

Si/cuando actualiza manualmente el diagrama al agregarlo en la vista (también se puede editar el .xml en algún editor de texto), asegúrese de no solo establecer el 'nombre', sino también configurar el' origen' (para la columna apropiada). Eso evitará este mensaje de error: 'Falta un nombre de objeto o columna o está vacío. Para las instrucciones SELECT INTO, verifique que cada columna tenga un nombre. –

1

Primero debe actualizar el archivo .sdf al archivo .dbml. Lo hice abriendo el símbolo del sistema cmd y dirigiendo el camino igual a la ruta SqlMetal.exe. después de eso, cambie el directorio donde está la base de datos .sdf, y luego escriba "SqlMetal.exe (nameofdatabase) .sdf /dbml:(nameofdatabase).dbml". Después de esto, haga clic derecho y seleccione "ejecutar herramienta personalizada" (en el explorador de soluciones en el archivo dbml). Eso debería hacerlo (al menos para mí lo hizo).

Cuestiones relacionadas