Je viens de créer une nouvelle application, ajoutée EntityFramework 5 via Nuget, créé un dBContext très basique et enregistré des données.
Où est exactement mes données et comment puis-je la voir? Le non modifié app.config code> ajouté est p>
Data Source=(localdb)\\v11.0;Initial Catalog=ImageSignature.ImageContext;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFrameworkMUE
3 Réponses :
Cet article devrait répondre à votre question. P>
La section de configuration vous permet de spécifier une connexion par défaut usine que le code doit d'abord utiliser pour localiser une base de données à utiliser pour un le contexte. L'usine de connexion par défaut n'est utilisée que lorsque non La chaîne de connexion a été ajoutée au fichier de configuration pour un contexte. P>
Lorsque vous avez installé le package EF Nuget une connexion par défaut usine a été enregistré que cela pointe sur
SQL Express ou localDB Strort>, selon sur lequel vous avez installé. p> blockQuote> juger par votre configuration Il apparaît que vous utilisez une connexion à localDB, Une version minimaliste de SQL utilisée Pour le développement . P>
Vous pouvez essayer d'utiliser l'explorateur de serveur intégré dans Visual Studio pour accéder à cette base de données, mais, comme vous l'avez écrit, cela pourrait ne pas être visible "hors de la boîte". En tant que tel, vous devrez peut-être créer une nouvelle connexion dans l'explorateur de serveur pour voir le contenu. P>
EDIT: P>
J'ai dû reposer une vitrine VMware 8 avec VS2012 pour répondre à la question "où sur le lecteur est la base de données". P>
Le
localdb code> crée
MDF code> et
ldf code> fichiers dans
c: \ users \
\ appdata \ local \ Microsoft \ Instances locales de Microsoft SQL Server \ V11.0 CODE> P>
P>
comme pour le connecter à celui-ci via le navigateur de serveur, j'ai pu voir la base de données en entrant
(localdb) \ v11.0 code> comme adresse du serveur, puis en sélectionnant la base de données avec un nom comme le nom Nom du contexte de données de votre application (avec espace de noms). P>
Toutes ces informations que j'ai trouvées ici . P>
Veuillez noter que dans le code que vous avez posté ici , il semble que vous reconstruisez la base de données à Le début de la demande en utilisant
base de données.Setinitializer (New DropcreateDatabaseways
()); code>. Bien sûr, cela est bon lors de la première exécution de l'application Première fois (la base de données est donc créée), mais les retéraux suivants effaceront les données et commenceront avec une nouvelle ardoise. Après avoir connecté à la base de données à l'aide de l'Explorateur de serveur, j'étais en fait incapable d'exécuter ce code, car la "base de données était déjà utilisée". Vous avez probablement besoin de reconsidérer garder la connexion ouverte sur le navigateur de serveur ou changer cette ligne de code. P>
Pourquoi n'est-ce pas "visible hors de la boîte"? Où est-ce? est i> stocké dans un fichier sur mon ordinateur, non? A-t-il été lancé dans le dossier Temp peut-être? Je vais essayer d'ajouter attachdbfilename code> à ma chaîne de connexion comme le Darin suggère, mais j'aimerais vraiment savoir ce que ça fait.
Étant donné que j'utilise Windows 7 et SQL SQL complet pour le développement et localDD semble être installé avec VS2012 sur W8, j'ai des difficultés à vérifier. Souhaitez-vous partager comment vous a créé un dbContext très basique i>?
J'ai téléchargé le pertinent de Ce gist . C'est juste une classe avec 2 champs.
En ce qui concerne votre dernier paragraphe, je voulais laisser tomber la base de données pour reconstruire toutes les signatures que j'ai modifié la fonction, alors je commençais l'appel à la fonction builddb code> et en ajoutant dans un qui lit et utilise réellement le Les données. J'ai trouvé que vous avez cliqué sur le DB dans le serveur-Explorer et cliquer sur "Fermer la connexion" se débarrasse généralement de ce message d'erreur. Merci pour votre aide :-)
En effet, c'est ce que je voulais dire par reconsiderant la connexion ouverte dans le navigateur de serveur code>. ;)
Vous utilisez localdb code>
. Le contenu pourrait être stocké dans un fichier. Vous pouvez spécifier l'emplacement à l'aide d'une chaîne de connexion:
<connectionStrings> <add name="ImageContext" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=database;Integrated Security=SSPI;AttachDBFilename=c:\work\database.mdf" providerName="System.Data.SqlClient" /> </connectionStrings>
LocalDB est une base de données de service et n'a rien à voir avec SQL Server Compact
Merci. Essayé d'ajouter cela; Il a créé le fichier db que j'ai pu se connecter en choisissant "Fichier de base de données Microsoft SQL Server" dans Server Explorer. Je peux voir la table maintenant, mais je n'arrive pas à voir son contenu.
Tout à fait éventuellement parce que la base de données est vide?