2010-06-02 15 views
4

Je vais commencer à écrire des tests NUnit pour quelques classes de mon projet. Un certain nombre de ces classes utilisent des données collectées via nhibernate à partir d'une base de données sql server 2008.Utiliser un dossier de fichiers xml comme source de données pour nhibernate

La partie du programme que je vais tester est très spécifique (et compliquée). J'ai donc créé un dossier de fichiers xml. Combinés, les fichiers xml pourraient entraîner la structure de la base de données. Je veux dire que chaque fichier xml correspond à une table dans la base de données. Les données contenues dans les fichiers xml sont également cohérentes avec la base de données.

Existe-t-il un moyen d'utiliser ce dossier de fichiers XML comme source de données pour nhibernate? Je veux dire: est-ce que je peux utiliser nhibernate pour rassembler mes données de test (que j'ai spécifiquement choisies) au lieu des données de la base de données? De cette façon, je pourrais utilement tester ce composant sans perturber la base de données (test) pour de futurs tests.

Répondre

2

Le "R" dans ORM signifie "Relationnel". NHibernate est conçu pour communiquer avec des bases de données relationnelles, pas avec des fichiers XML. Au lieu de cela, vous devez simuler votre couche DAO/Repository pour lire les fichiers XML sans en utilisant NHibernate.

0

J'ai eu une question similaire ici et j'ai trouvé la réponse (peut-être) moi-même, puisque je ne l'ai pas essayé.

Voici un chapitre très prometteur à la recherche de la mise en veille prolongée docu: XML Mapping

Il est donc possible de stocker des données relationnelles en XML. Il existe également des moyens d'assurer l'intégrité référentielle à travers les éléments du schéma xsd.

Mais:

Mapping XML est une fonctionnalité expérimentale dans Hibernate 3.0 et est actuellement en cours de développement.

+0

Voici le lien vers l'autre poste: http://stackoverflow.com/questions/3234805/how-to-transfer-data-from-database-to-and-from-xml – schoetbi

+0

le lien "l'autre poste" n'existe plus :-( – k3b