2009-10-26 5 views
2

Notre produit est partiellement construit en utilisant Delphi et partiellement .NET et dans notre état actuel de migration vers .NET, nous avons le dictionnaire de données dans un composant Delphi, donc c'est le maître. À partir de là, nous générons du code source .NET à l'aide de modèles, pour prendre en charge l'interrogation simple, mais aussi pour faire Linq2Sql, puisque notre produit nécessite SQL Server.Génération de fichiers ADO.NET Entity Data Model, par où commencer?

Cependant, je voudrais passer au nouveau modèle d'entité dans .NET au lieu de Linq2Sql, mais je ne sais pas combien de travail ce serait. Tous les tutoriels ou les exemples que je trouve semblent tourner autour de la modélisation du modèle de données dans le concepteur, ou de l'obtenir à partir de la base de données, ni ne fonctionne pour nos besoins.

Dans Linq2Sql, nous avons annoté nos classes de requête avec TableMappingAttribute et ColumnMappingAttribute, puis généré un descendant de DataContext, tout cela fonctionne très bien.

Y a-t-il un chemin facile similaire pour utiliser le code du modèle Entity à la place? Ou dois-je produire tous ces fichiers xml et exécuter des outils pour produire des ressources, etc.?

Est-ce que quelqu'un a été dans la même situation et peut faire la lumière sur ce sujet?

+0

Est-ce que .NET 4 est une option? Il y a beaucoup plus d'options de génération de modèles dans EF 4. Pour EF 1, vous avez besoin du XML. –

+0

Pas pour le moment, non. Nous allons mettre à jour l'année prochaine probablement. –

Répondre

3

Malheureusement pour vous, je pense que vous avez besoin des fichiers XML.

Il existe actuellement 3 fichiers qui composent l'EDM. (Bien que dans le studio visuel ils sont tous réunis dans une file EDMX)

  • SSDL - stockage (Décrit la base de données)
  • CSDL - conceptuels (décrit les objets de données)
  • msl - cartographie (décrit le mappage entre stockage et conceptuel)

a partir des fichiers EDM, l'EDM Generator peuvent être utilisés pour générer tous les trois d'une connexion de base de données, juste le MSL et CSDL du SSDL, ou il peut générer les objets de données réelles de la CSDL.

Malheureusement, ce n'est pas là que s'arrête l'utilisation du XML. Il est toujours nécessaire au moment de l'exécution pour que le framework d'entité effectue la traduction des objets vers le stockage, etc. Une référence aux 3 fichiers EDM doit être fournie dans le Entity framework connection string. (Plus d'info sur building EF connection strings)

Vous pourriez probablement trouver des moyens d'avoir votre code objet de données généré (ou étiqueter automatiquement vos ceux qui existent déjà avec les différents attributs nécessaires et les méthodes supplémentaires) - comme Linq il y a des attributs tels que EdmEntityTypeAttribute et EdmScalarPropertyAttribute qui sont mis sur les classes et les propriétés, mais sans les 3 fichiers EDM, le framework d'entité ne va pas savoir quoi faire avec vos objets de données. Le générateur ajoute également d'autres éléments aux classes d'objets de données, tels que les événements de modification de propriété, et un héritage de EntityObject. Je ne suis pas sûr de ce que les choses supplémentaires sont nécessaires pour le bon fonctionnement de l'infrastructure de l'entité, et ce qui est juste là pour le développeur. Je suppose que les événements de changements de propriété sont requis par le contexte de données pour suivre les changements.

Il existe un article here sur les outils EDM et du code pour générer/diviser des fichiers EDMX dans leurs fichiers ssdl/csdl/msl.

Questions connexes