2009-04-19 6 views
2

Existe-t-il un moyen de générer le fichier DBML à partir des classes d'entités à la place des tables de base de données? Cela serait très utile pour le prototypage, où l'on crée simplement un modèle logique et laisse l'outil généré automatiquement créer le fichier DBML. Avec le fichier DBML, on peut utiliser SqlMetal pour générer des classes Linq to SQL et l'utiliser. Donc, pour un prototype rapide, on pourrait:Génère automatiquement DBML à partir d'entités?

1.Définir modèles

public class Person 
{ 
    public string Name { get; set; } 
    public int Age { get; set; } 
    // etc 
} 

l'outil 2. Faire passer (avec des entités choisies)

3.Get le fichier généré DBML d'auto-

4. Exécuter le SqlMetal tool ou Damiens t4 scripts pour créer des classes Linq to SQL

5.Code contre les bases de données de contexte de données générées automatiquement et générées automatiquement e (en utilisant DataContext.CreateDatabase() pour créer la base de données initiale, par exemple). Une sorte de migration de base de données serait encore plus agréable.

Ou est-ce que je suis bizarre de vouloir générer une base de données à partir d'objets au lieu d'objets provenant de DB? :)

+0

Nowdays, une alternative intéressante à l'aide qui est FluentNHibernate avec ses capacités d'auto-mapping, ainsi que NHibernate.Linq. De cette façon, il est très simple de créer un modèle de base de données et il est très facile de personnaliser l'auto-mapping. J'espère que cela aide aussi les autres. – miha

Répondre

1

N'existe pas. Actuellement, la seule méthode de génération d'un DBML pour Linq to SQL provient d'une source de base de données SQL.

Cela pourrait un jour exister pour Entity Framework mais pas actuellement là non plus.

0

je fais réellement de façon légèrement différente:

  1. Définir un modèle XML de mes structures de données
  2. Utilisez XSLT pour générer une procédure stockée pour créer, lire, upsert, etc.
  3. Utiliser les procédures stockées pour créer la base de données
  4. Travailler avec Linq → SQL d'une manière typique, en important les procédures stockées (je n'importe pas le modèle car Linq → SQL fait esn't savent comment travailler avec les groovy « 2008 caractéristiques)
  5. Travailler avec le modèle
Questions connexes