Chaîne de connexion EF 4.1 le premier code SQL compact dans l'application windows form
J'ai créé une application windows form:
- Une présentation de la bibliothèque avec plusieurs formes de windows
- Une bibliothèque de classe avec une couche de données
- Une bibliothèque de classe pour accéder à une base de données
Je suis en utilisant EntityFramework 4.1 avec l'Approche du Premier Code et SQL Compact 4.0 base de données.
J'ai créé une chaîne de connexion dans l'application.fichier de config dans le projet de bibliothèque de classes utilisé pour se connecter à la base de données. Le problème, c'est que la chaîne de connexion n'a apparemment pas d'influence sur la création de base de données. Je veux dire que tout fonctionne bien avec le programme, mais même si je spécifier un emplacement pour la base de données, cela n'a aucun effet!
Suis-je écrire dans la bonne application.config?
Ai-je besoin d'initialiser ma classe DbContext d'une manière spécifique? (aujourd'hui, je ne passe pas toute la chaîne de connexion dans le constructeur)
DbContext classe:
public class MyDB : DbContext
{
public DbSet<ContactPerson> ContactPersons { get; set; }
public DbSet<Customer> Customers { get; set; }
public DbSet<Project> Projects { get; set; }
public DbSet<Quotation> Quotations { get; set; }
public MyDB()
: base("MyDatabase")
{
}
}
App.config chaîne de connexion:
<add name="MyDatabase" connectionString="Data Source=MyDB.sdf"
providerName="System.Data.SqlServerCE.4.0">
OriginalL'auteur Francesco | 2011-07-15
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de mettre de l'application.config dans la demande.exe) du projet. L'app.fichier de configuration devrait ressembler à ce blog (sensible à la casse): http://erikej.blogspot.com/2011/04/saving-images-to-sql-server-compact.html et les noms doivent être MyDB, pas Mabase...
La base de données est en fait la création de SQL server express!
J'ai mis à jour ma réponse
J'ai tout essayé sans résultats! app.la config est marqué a "copy" et il apparaît dans le dossier bin\debug. Mais pas de sdf fichier est créé
Action de construire devrait être nul et de Ne pas Copier. Pourriez-vous nous montrer votre application.config contenu, s'il vous plaît...
OriginalL'auteur ErikEJ
Votre chaîne de connexion est mauvaise, il devrait être ceci:
add name="MyDB" connectionString="Data Source=MyDB.sdf" providerName="le Système de.Les données.SqlServerCE.4.0"
Noter que le Nom doit correspondre au nom de votre classe de contexte pour détecter automatiquement la connexion.
OriginalL'auteur Solmead
Avez-vous essayé d'ensemencement de la DB? Vous avez à injecter certaines données afin EF crée une base de données, si vous n'avez pas la définition du modèle, c'est comme une déclaration d'intention.
Puis regardez dans votre Debug/Release dossier et de vérifier si la DB est créé correctement.
Il y a un article de Microsoft expliquant tout ce processus plus en détail, ils ont un neew tutoriel qui remplace la "Licorne Magique" tutoriel, voir http://msdn.microsoft.com/en-US/data/jj193542
OriginalL'auteur Hannish