web-dev-qa-db-fra.com

C # d'où vient le fichier dbml?

J'apprends actuellement C # et LINQ. J'ai beaucoup de questions à leur sujet. Fondamentalement, j'ai besoin d'un tutoriel étape par étape.

  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. Et après? 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?

28
5YrsLaterDBA

Le fichier DBML n'est pas du tout 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 comment vous allez les mapper aux objets .NET.

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

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

29
Mehrdad Afshari

Le fichier DBML est un mappage 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 il ne "configure" pas du tout votre base de données.

Linq to Sql utilise une approche basée sur la base de données dans laquelle vous disposez de la base de données et modélisez vos classes d'après le schéma de base de données. En faisant glisser et en déposant le tableau là-bas, vous automatiserez la création des classes afin de ne pas avoir à les taper. Vous pouvez modifier les noms de propriété, etc. à partir de là et le mappage entre la propriété et son nom de colonne de base de données correct restera intact.

4
hackerhasid

Oui, le fichier DBML est créé lorsque vous ajoutez une classe Linq à SQL. Dans le concepteur (ce que vous voyez lorsque vous double-cliquez sur le fichier DBML), vous pouvez y faire glisser des tables (depuis l'explorateur du serveur). Vous pouvez ensuite référencer ces tables dans votre code. Il existe plusieurs didacticiels de démarrage:

Cochez cette SO question pour plus de détails:

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

2
HitLikeAHammer
2
Paul Kohler