Chaîne de connexion pour l'utilisation de SQL Server Compact avec Entity Framework?
Je suis en fait en essayant de Google pour cela. J'ai installé SQL Server CE 4.0, et ont 4.1 EF, mais je ne peux pas en faire une véritable chaîne de connexion. Rien sur connectionstrings.com
s'applique à moi.
Je veux juste créer un SqlCeEngine
objet, mais peu importe ce que j'essaie j'obtiens une exception. Plus récemment, il a été
Inconnu option de connexion en chaîne de connexion
soit avec des "métadonnées", "application", "fournisseur", ou "chaîne de connexion fournisseur" d'après elle. Je sais EF nécessite des métadonnées dans la chaîne de connexion. Et je ne peux pas imaginer comment quelque chose pourrait se passer de "fournisseur de la chaîne de connexion".
Pour l'instant j'ai ceci:
<add name="DBContext"
connectionString="provider connection string="Data Source=MyDbFile.sdf;Persist Security Info=False;""
providerName="System.Data.EntityClient" />
À un moment j'ai eu avec des métadonnées:
<add name="DBContext"
connectionString="metadata=res://*/Data.DBContext.csdl|res://*/Data.DBContext.ssdl|res://*/Data.DBContext.msl;provider=System.Data.SqlClient;provider connection string="Data Source=MyDbFile.sdf;Persist Security Info=False;""
providerName="System.Data.EntityClient" />
- T-il besoin de métadonnées ou pas? Ce qui se passe dans le "app" dans la chaîne de connexion? Quel devrait être le fournisseur, System.Data.SqlClient
ou SQL Server CE version? (encore que je ne peut pas le trouver quand j'essaie d'ajouter des références. Mon ajouter des références fenêtre ne contient System.Data.SqlServerCe
version 3.5.1.0.) Ou rien?
Et ce qui devrait aller dans le providerName
attribut? Est System.Data.EntityClient
correct? C'est comme il y a 10 sortes de variables ici et chaque combinaison donne-moi un nouveau aussi mystérieuse erreur, aucun de qui s'avère rien d'utile sur Google. Je suis à mon esprit " fin. Est-ce même possible?
source d'informationauteur Tesserex
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer ce dans votre Application.fichier de configuration (EF5 le premier Code migrations et SQL Server CE 4.0):
Et vous
ProjectDb
classe:Il va travailler comme un charme.
Vous pouvez trouver plus d'informations ici: http://blogs.msdn.com/b/adonet/archive/2011/01/27/using-dbcontext-in-ef-feature-ctp5-part-2-connections-and-models.aspx
J'avais coincé avec le même problème sur Entity Framework 5.0 Première approche de Code avec SQL Server Compact Edition 4.0
Pour le résoudre j'ai passer instance de
SqlCeConnection
àDbContext
'constructeur:Si vous ne voulez pas aux commandes de chaîne de connexion, vous pouvez l'obtenir à partir d' App.config par
ConfigurationManager
Et bien sûr, vous devez ajouter une référence à la bonne version de Système.Les données.SqlServerCe (regarder à l'intérieur de Extentions onglet dans la boîte de dialogue Ajouter une Référence)
Cet article TechNet décrit les étapes à suivre pour l'utilisation de l'EF avec SQL Server Compact. Cette ligne m'a sauté aux yeux, et peut résoudre vos problèmes:
(Je suppose que vous voulez 4.0 au lieu de 3,5)
Donner un essai et voir comment les choses vont.
La Lu55 la solution n'a pas fonctionné pour moi, mais j'ai trouvé le fow pour le fixer. À continuer à utiliser la génération automatique de code (qui peut écraser les modifications dans un fichier généré), j'ai ajouté un autre fichier avec le code suivant:
Vous avez mélangé un peu.
Pour SQL Server CE de la chaîne de connexion peut être assez facile (peut-être remplacer
DbContext
avecYourNameSpace.DbContextName
):J'ai aussi eu beaucoup de problèmes avec les connexions, j'ai donc fait la suivante:
System.Data.SqlServerCe.4.0
[MaxLength(4000)]
par défaut == MAX)Métadonnées sont nécessaires lors de l'utilisation de la base de données-premier plutôt que le modèle de code-première, donc il est
.edmx
fichier qui représente le modèle généré de la base de données.