2010-03-22 9 views
24

J'apprends actuellement C# et LINQ. J'ai beaucoup de questions à leur sujet. Fondamentalement, j'ai besoin d'un tutoriel étape par étape.C# d'où vient le fichier dbml?

  1. Je suppose que le fichier dbml est le fichier de configuration de la base de données. Si je double-clique sur le fichier dbml, VS l'ouvrira dans un diagramme de conception. Puis-je créer/supprimer/modifier des tables ici? Je peux utiliser add new item pour ajouter le LINQ to SQL Classes pour obtenir un fichier dbml?

  2. Quelle est la prochaine? Générer des tables dans la base de données? Générer un script SQL? Générer des fichiers cs? Quand? Comment?

Répondre

24

Le fichier DBML n'est pas lié au serveur de base de données. C'est une chose complètement côté client. Il s'agit essentiellement d'un ensemble d'informations sur vos tables dans la base de données et sur la façon de les mapper aux objets .NET.

Bien sûr, vous pouvez faire glisser une table à partir d'une base de données et Visual Studio déduire certaines informations automatiquement pour vous, mais en changeant le fichier n'affectera pas la base de données. Vous pouvez créer un fichier DBML à partir de zéro sans aucune base de données.

En interne, le fichier DBML est simplement un fichier XML introduit dans un outil personnalisé par Visual Studio et génère des fichiers .cs représentant le modèle d'objet LINQ pour votre base de données.

+0

est-il un moyen de contourner le fichier dbml pour la création de fichiers .cs? mon collègue a cette commande: sqlmetal/serveur: dwasilew \ sqlexpress/base de données: Ande /code: Ande.cs Je suppose que le fichier Ande.cs est créé dans cette commande. il n'y a pas de .dbml mentionné. – 5YrsLaterDBA

+0

@ 5Yrs: 'SQLMetal' est l'outil qui (1) peut générer' dbml' à partir d'une base de données (2) peut générer du code à partir de 'dbml' (3) peut rationaliser les deux processus et sortir directement une base de données . Visual Studio fait essentiellement la même chose avec une interface graphique. Vous pouvez voir les différents arguments de ligne de commande pour SQLMetal ici: http://msdn.microsoft.com/en-us/library/bb386987.aspx –

3

Le fichier est DBML mapping qui définit vos classes en fonction de votre schéma de base de données. Oui, il définit votre chaîne de connexion (par défaut), mais ne configure pas votre base de données.

à Sql utilise Linq une base de données première approche où vous avez la base de données et modèle vos classes après le schéma DB. En faisant glisser & en déposant la table là-bas, vous allez automatiser la création des classes afin de ne pas avoir à les taper. Vous pouvez modifier les noms de propriétés à partir de cet emplacement et le mappage entre la propriété et son nom de colonne de base de données correct restera intact.

2

Oui, le fichier DBML est créé lorsque vous ajoutez un Linq à la classe SQL. Dans le concepteur (ce que vous voyez lorsque vous double-cliquez sur le fichier DBML), vous pouvez faire glisser des tables (à partir de l'explorateur du serveur). Vous pouvez ensuite référencer ces tables dans votre code. Il y a plus de quelques tutoriels fait que commencer là:

Vérifiez cette question SO pour plus de détails:

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

+0

La question liée SO semble avoir été supprimé ou déplacé ou quelque chose ... – Alex

+0

Eh bien, ce message a 7 ans :-). Linq to SQL est considéré comme mort selon les normes d'aujourd'hui. À moins que vous ne travailliez avec du code existant, j'utiliserais autre chose comme Entiy Framework. – HitLikeAHammer