jeudi 5 juin 2008

Génération de la classe d'accès aux données avec SqlMetal

Avec les nouvelles versions Visual Studio 2008 (Express et consorts) arrivent de nouveaux outils permettant de manipuler les données. Si l'on dispose d'une version complète de Visual Studio 2008, on a le Concepteur Objet/Relationnel (Concepteur O/R) permettant de manipuler graphiquement notre mapping.
Mais il existe la solution du "pauvre", lorsque l'on dispose des versions Express, où l'on peut utiliser l'outil en ligne de commande SqlMetal.exe
disponible par défaut dans :
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
Ainsi, avec la base de données exemple Northwind, vous exécuter la commande suivante :
sqlmetal /server:"SERVEUR" /database:northwind /code:"C:\northwind.cs"
le code source d'accès aux données exploitable par Linq est généré.
Ensuite c'est simple :
  1. Création d'une nouveau projet console
  2. Ajout de la référence "System.Data.Linq"
  3. Code source d'une classe Minimale :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Exemple
{
class Program
{
static void Main(string[] args)
{
string cnx = @"Server=SERVEUR;Database=Northwind;Trusted_Connection=yes;";
Northwind db = new Northwind(cnx);
foreach (var client in db.Customers)
{
Console.WriteLine("{0}, {1}, {2}", client.CustomerID, client.CompanyName, client.Orders.Count);
}
Console.ReadLine();
}
}
}

Personnellement je trouve ça génial, mais ça n'engage que moi ;)

Aucun commentaire: