2009-02-18 5 views
5

J'ai mis en place une solution EF soutenue par SQLServer 2005 pour l'application métier sur laquelle je travaille, et ça marche bien.Couche de stockage locale pour Entity Framework?

Je rencontre un problème en ce sens que je veux permettre à l'utilisateur de travailler sans base de données tout en utilisant les mêmes entités.

Je ne veux pas aller aux bases de données locales pour des raisons de portabilité. En outre, il est facile d'envoyer une petite base de données par e-mail si ce n'est qu'un fichier XML. Donc, je sais qu'un DataSet pourrait être stocké et chargé à partir d'un fichier XML, d'un schéma et de tout. Est-il possible d'utiliser un (ou deux, ou trois) fichiers XML comme couche de stockage de EF?

Comme Entity Framework est construit sur ADO.Net, je m'attendais à ce qu'il y ait un fournisseur de données XML en quelque sorte. Ensuite, le modèle d'entité pourrait être fait pour exécuter un fichier XML. Je suis tombé sur le concepteur DataSet qui m'a permis de créer le schéma et de sauvegarder et charger à partir d'un fichier XML, mais pas dans EF, puisque EF utilise Object Services au lieu de DataSet (corrigez-moi si je me trompe. il here at MSDN).

J'ai rencontré le WilsonXmlDbClient library, qui est censé être un fournisseur de données XML pour ADO.Net. Cela semble vieux, et je ne sais pas vraiment par où commencer.

Je sais que XML n'est pas le premier choix pour stocker des données relationnelles, cependant, je cherche à travailler avec des fichiers de 1 Mo ou moins.

TIA

+0

Donc, je sais que cela ne répond pas à votre question comme vous le souhaitez, mais SQL Express est gratuit. . . pourquoi ne pas fournir votre base de données en tant que script * .SQL qui construit et charge la base de données? Entièrement fonctionnel, y compris le schéma, les procédures stockées, les données et tout ce dont vous avez besoin. . . sans frais, juste une seule installation gratuite d'un fabricant de confiance bien connu. – Frank

Répondre

2

Une façon de le faire serait d'utiliser le cadre de synchronisation Microsofts. http://msdn.microsoft.com/en-us/sync/default.

Vous utiliseriez ensuite SQL Server Express ou Compact Edition sur le client.

Le cadre de synchronisation et les éditions SQL Server Express et Compact sont gratuits.

+0

+ 1 Le framework SQL CE + Sync est probablement la solution la plus simple. Il n'a pas besoin d'installation - il s'agit juste d'un ensemble de DLL déployées avec l'application et il s'exécute dans le processus d'application. Si vous n'aimez pas l'idée de SQL CE, vous devrez créer votre propre fournisseur de données et outil de synchronisation - beaucoup de travail à faire. –