Je rencontre le problème exact comme décrit ici (lire la section "Impossible de joindre au fichier MDF supprimé"), mais la solution au problème n'y est pas indiquée ...
En bref, le problème est qu'après la suppression du .mdf
fichier, l'exception suivante est levée lorsque j'essaie d'accéder à la base de données à l'aide d'EF 5.0.
DataException-> EntityException-> SqlException:
impossible de joindre le fichier «{0}» en tant que base de données «{1}»
J'ai supprimé le fichier DB et maintenant je reçois ce message d'erreur désagréable lors de l'exécution de l'application en m'attendant à utiliser son initialiseur. Aucun moyen de réparer cela?
sql-server
asp.net-mvc
visual-studio-2012
entity-framework-5
localdb
Shimmy Weitzhandler
la source
la source
Réponses:
Si vous supprimez le fichier DB, il reste toujours enregistré avec SqlLocalDB. Parfois, il le corrige pour supprimer la base de données. Vous pouvez le faire à partir de la ligne de commande.
Exécutez les commandes suivantes:
sqllocaldb.exe stop v11.0
sqllocaldb.exe delete v11.0
la source
v11.0
est spécifique à SQL LocalDB 2012. Si vous utilisez LocalDB 2014, MS l'a renommé à laMSSqlLocalDb
place.Pour ceux qui recherchent encore une solution ...
Accédez à l'Explorateur d'objets View / SQL Server et supprimez la base de données du sous-nœud (localdb) \ v11.0!
Il y a essentiellement une base de données locale conservée où les fichiers devraient être, et si vous souhaitez supprimer les fichiers de base de données, assurez-vous de les supprimer de cet utilitaire d'exploration, pas manuellement.
la source
J'ai d'abord essayé la solution de JSobell mais je n'ai pas vu ma base de données répertoriée ici. J'ai exécuté les commandes de CodingWithSpike à partir de l'invite de commande VS Developer, mais cela n'a pas fonctionné non plus. Enfin, j'ai exécuté les mêmes commandes de CodingWithSpike à partir de Package Manager Console et cela a fonctionné.
la source
Bien.
Ma solution était simple, j'ai changé pour utiliser le serveur local:
J'ai changé l'
DataSource
attribut dans la chaîne de connexion de:À:
Une autre solution consiste à vous connecter à LocalDb via SQL Management Studio et à essayer de supprimer cette base de données:
Cependant, cela n'a pas fonctionné pour moi, lorsque j'essaie de le supprimer, il est dit "TITRE: Microsoft SQL Server Management Studio
Lorsque j'essaye de la détacher, la base de données n'apparaît pas dans la liste pour la sélection de détachement, "Mettre hors ligne" m'amène également à l'erreur ci-dessus.
Ce qui m'amène à penser qu'il s'agit d'un bogue solide dans LocalDB.
la source
La solution la plus simple consiste simplement à modifier le nom de votre base de données dans la chaîne de connexion. Consultez le blog Rowan Millers sur la suppression d'une base de données à partir de Visual Studio 2012 pour d'autres solutions. Nous espérons résoudre ce problème dans une prochaine édition.
la source
La réponse la meilleure et la plus simple Je viens de la résoudre maintenant, utilisez simplement le nom du serveur SQL comme source de données, le catalogue initial soit le nom de votre base de données et là vous allez supprimer la ligne mdf
la source
Dans mon cas, j'utilise des migrations et dans la configuration, j'ai simplement changé le nom de la classe dataContext et dataContext elle-même (il suffit de renommer), puis réessayez et cela a aidé
la source
Pour SQL 2014, veuillez suivre la réponse sélectionnée CodingWithSpike et ce commentaire
la source
v11.0
àProjectsV12
. Au moins sur ma machine :-).J'ai eu le même problème et je l'ai résolu en définissant manuellement le dossier «DataDirectory» dans un autre dossier dans mes binaires d'application.
J'ai mis cette ligne dans la méthode Global.asax Application_Start:
Ma chaîne de connexion est actuellement définie sur ceci:
la source
DataDirectory
est déjà défini sur localApp_Data
par défaut, donc à moins d'être explicitement modifié auparavant, votre code ne fait rien.Je pourrais le réparer en renommant le nom DataBase dans ma chaîne de connexion, de l'aspnet- {nombres} par défaut à un nom simple, cela a fonctionné.
la source
Connectez-vous à (LocalDb) \ v11.0 à l'aide du studio de gestion de serveur SQL, supprimez la base de données, puis effectuez une mise à jour de la base de données dans la console du gestionnaire de packages.
la source
J'ai eu le même problème. J'ai exécuté les commandes suivantes dans la console du gestionnaire de packages et cela a résolu le problème
la source