web-dev-qa-db-fra.com

Entity Framework avec des fichiers XML

Quelqu'un peut-il m'indiquer un bon tutoriel expliquant Entity Framework en utilisant un fichier XML au lieu d'une base de données? J'ai vu de bons tutoriels avec des bases de données SQL, mais je ne peux pas passer à un fichier XML.

Merci!

45
Tim

Entity Framework lui-même est basé sur le fournisseur et est conçu pour fonctionner sur une base de données relationnelle. Si vous le vouliez vraiment, vous pouvez écrire votre propre fournisseur pour EF qui lit/écrit dans un fichier xml, mais cela représenterait une charge de travail considérable de énorme.

Je pense que vous devriez vraiment regarder l'un des:

  • LINQ-to-XML
  • (Dés) sérialisation XML
  • XPath/XQuery
  • XSLT

Entity Framework n'a pas de correspondance naturelle dans ce scénario.

42
Marc Gravell

Linq to XML n'est pas si souvent que ça. Je choisirais plutôt une solution sérialisable.

3
mhenrixon

J'aime LINQ to XSD: http://linqtoxsd.codeplex.com/

Il s’agit essentiellement de LINQ to XML avec certaines classes dérivées de XSD pour s’assurer qu’il s’agit bien du schéma ...

2
Kearns
  • Le problème est-il que vous ayez besoin d'un magasin de données basé sur des fichiers? Si tel est le cas, vous pouvez utiliser un fournisseur de données SimpleDB. SimpleDB est idéal si vous avez besoin d’une base de données relationnelle dans un seul fichier. MS Access est également idéal pour cela. 

  • XML est conçu pour la communication. Si utilisé pour le stockage, il est incroyablement inefficace. Il peut être préférable de séparer les deux tâches et de stocker vos données dans une base de données relationnelle, puis de générer votre code XML à partir de vos données.

0
Jason Gray

Vous pouvez utiliser une connexion oledb avec une commande FORXML ... mais vous ne disposerez pas de toutes les fonctionnalités disponibles avec d'autres fournisseurs ...

0
user407665

Je ne pense pas que ce soit vraiment possible.

De MSDN (l'emphase mienne): 

ADO.NET Entity Framework est conçu pour permettre aux développeurs de créer des applications d'accès aux données en programmant sur un modèle d'application conceptuel au lieu de programmer directement sur un schéma de stockage relationnel.

0
bdukes