141 votes

EF5: Impossible de joindre le fichier " {0}", comme la base de données " {1}'

Je suis de la rencontre de la cause exacte comme décrit ici (lire la section "Ne peut pas s'Attacher à Supprimé Fichier MDF"), mais la solution au problème n'est pas dit là...

En bref, le problème est que, après la suppression de l' .mdf le fichier, l'exception suivante est levée lorsque j'essaie d'accéder à la DB à l'aide de EF 5.0.

DataException->EntityException->SqlException:
Impossible de joindre le fichier " {0}", comme la base de données " {1}'

J'ai supprimer le fichier de base de données, et maintenant j'ai ce vilain message d'erreur lors de l'exécution de l'application s'attendait à utiliser l'initialiseur. De toute façon de résoudre ce problème?

223voto

CodingWithSpike Points 17720

Si vous supprimez le fichier de base de données, il reste encore inscrit avec SqlLocalDB. Parfois, il la corrige pour supprimer la DB. Vous pouvez le faire à partir de la ligne de commande.

  1. Ouvrez le "Développeur de Commande Propmpt pour VisualStudio", sous votre menu démarrer/programmes.
  2. Exécutez les commandes suivantes:

    sqllocaldb.exe stop v11.0

    sqllocaldb.exe delete v11.0

148voto

JSobell Points 839

Pour ceux qui sont encore à la recherche d'une solution...

Allez dans Affichage / Explorateur d'Objets SQL Server et de supprimer la base de données de l' (localdb)\v11.0 sous-nœud! enter image description here

Il y a essentiellement une base de données locale conservé de l'endroit où les fichiers doivent être, et si vous voulez supprimer les fichiers de base de données, assurez-vous retirer de cette explorer utilitaire, pas manuellement.

19voto

AJs Points 51

Je l'ai fait essayer JSobell est tout d'abord la solution, mais ne voit pas ma base de données qui y sont énumérés. J'ai couru CodingWithSpike les commandes de VS Développeur Invite de Commande, mais cela ne fonctionne pas non plus. Enfin, j'ai couru CodingWithSpike de même les commandes de la Console du Gestionnaire de Package et que travaillé.

    PM> sqllocaldb.exe stop v11.0
    LocalDB instance "v11.0" stopped.

    PM> 
    PM> sqllocaldb.exe delete v11.0
    LocalDB instance "v11.0" deleted.

    PM> sqllocaldb.exe start v11.0
    LocalDB instance "v11.0" started.

9voto

Shimmy Points 23393

Alright.

Je n'ai pas la moindre idée de ce qui est si grande sur la maladroit LocalDB. De toute façon, ma solution a été simple, j'ai changé pour une utilisation serveur local:

J'ai changé l' DataSource d'attribut dans la chaîne de connexion:

Data Source=(LocalDb)\v11.0;blah

Pour:

Data Source=.\SQLEXPRESS;blah

Une autre solution est de vous connecter à LocalDb via SQL Management Studio, et d'essayer de le supprimer de la base de données:

enter image description here

Toutefois, il ne fonctionne pas pour moi, quand j'ai essayer de le supprimer, il dit: "TITLE: Microsoft SQL Server Management Studio

La Base de données "{0} " n'existe pas sur le serveur. (SqlManagerUI)

Lorsque j'essaie de détacher la base de données n'apparaît pas dans la liste pour le détacher de la sélection "déconnecter" prend aussi pour moi l'erreur ci-dessus.

Ce qui m'amène à penser que c'est une solide bug dans LocalDB.

4voto

RickAnd - MSFT Points 3741

La meilleure solution est de simplement changer le nom de votre base de données dans la chaîne de connexion. Voir Rowan Millers blog Comment faire pour supprimer une Base de données à partir de Visual Studio 2012 pour des solutions de rechange. Nous espérons résoudre ce problème dans une prochaine édition.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X