2010-03-22 28 views
24

Actualmente estoy aprendiendo C# y LINQ. Tengo muchas preguntas sobre ellos. Básicamente, necesito un tutorial paso a paso.C# ¿de dónde viene el archivo dbml?

  1. Supongo que el archivo dbml es el archivo de configuración de la base de datos. Si hago doble clic en el archivo dbml, VS lo abrirá en un diagrama de diseño. ¿Puedo crear/eliminar/modificar tablas aquí? Puedo usar add new item para agregar el LINQ to SQL Classes para obtener un archivo dbml?

  2. ¿Qué sigue? Generar tablas en la base de datos? Generar script SQL? Generar archivos cs? ¿Cuando? ¿Cómo?

Respuesta

24

El archivo DBML no está relacionado con el servidor de base de datos en absoluto. Es algo completamente del lado del cliente. Básicamente es un conjunto de información sobre sus tablas en la base de datos y cómo las va a asignar a objetos .NET.

Por supuesto, puede arrastrar una tabla desde una base de datos y hacer que Visual Studio infiera cierta información para usted automáticamente, pero cambiar el archivo no afectará a la base de datos. Puede crear un archivo DBML desde cero sin ninguna base de datos.

Internamente, el archivo DBML es simplemente un archivo XML que se alimenta en una herramienta personalizada de Visual Studio y genera .cs archivos que representan el modelo de objetos LINQ para su base de datos.

+0

¿Hay alguna manera de eludir el archivo dbml para la creación de archivos .cs? mi compañero de trabajo tiene este comando: sqlmetal/server: dwasilew \ sqlexpress/database: Ande /code:Ande.cs Supongo que el archivo Ande.cs se crea en este comando. no se menciona .dbml – 5YrsLaterDBA

+0

@ 5Yrs: 'SQLMetal' es la herramienta que (1) puede generar' dbml' desde una base de datos (2) puede generar código fuera de 'dbml' (3) puede racionalizar los dos procesos mencionados y generar el archivo fuente directamente desde una base de datos . Visual Studio esencialmente hace lo mismo con una GUI. Puede ver los diferentes argumentos de línea de comando para SQLMetal aquí: http://msdn.microsoft.com/en-us/library/bb386987.aspx –

3

El archivo DBML es una asignación que define sus clases en función de su esquema de base de datos. Sí, define tu cadena de conexión (predeterminada), pero no "configura" tu base de datos.

Linq to Sql utiliza un primer enfoque de base de datos donde tiene la base de datos y modela sus clases después del esquema de base de datos. Al arrastrar & colocando la tabla allí, automatizará la creación de las clases para que no tenga que escribirlas. Puede cambiar los nombres de propiedad, etc. desde allí y la asignación entre la propiedad y su nombre de columna de base de datos correcta permanecerá intacta.

2

Sí, el archivo DBML se crea cuando agrega una clase Linq a SQL. En el diseñador (lo que ve cuando hace doble clic en el archivo DBML) puede arrastrar tablas (desde el explorador del servidor) a él. A continuación, puede hacer referencia a estas tablas en su código. Hay más de unos pocos tutoriales comenzó a recibir por ahí:

Marque esta cuestión de forma para obtener más información:

https://stackoverflow.com/questions/481244/can-anyone-recommend-a-good-tutorial-for-learning-linq2sql

+0

Parece que la pregunta SO vinculada ha sido eliminada o movida o algo ... – Alex

+0

Bueno, esta publicación tiene 7 años :-). Linq to SQL se considera muerto según los estándares actuales. A menos que trabaje con código heredado, consideraría usar algo más como Entiy Framework. – HitLikeAHammer

Cuestiones relacionadas