Cannot attach the file ‘*.mdf’ as database

Dans le cadre d’une application ASP.Net avec l’Entity Framework de Microsoft, on peux être tenté de supprimer manuellement le fichier de base de données (avec l’extension .mdf) pour repartir sur une nouvelle base rapidement.

Problème, nous obtenons au prochain lancement l’exception suivante:

System.Data.SqlClient.SqlException: Cannot attach the file '(...)xxx.mdf' as database 'xxx'

L’explication se situe du côté de SQL Local DB qui considère que le fichier existe toujours et ne cherche donc plus à le créer. Nous allons donc devoir le « dé-enregistrer » à l’aide des Native Tools Command Prompt (le nom exact peut varier selon votre version de Visual Studio).

Ouvrez ce programme (une invite de commande avec les outils VS dans le path) et tapez la commande sqllocaldb.exe i:
2014-07-29 16_25_07

L’instance à supprimer sera ici v11.0 (à moins d’avoir spécifier le contraire dans Web.config).

La suppression se fera en deux étapes:

  • Stopper l’instance avec sqllocaldb p v11.0
  • Supprimer l’instance avec sqllocaldb d v11.0

2014-07-29 16_29_02

Ne reste plus qu’à ré-exécuter notre application pour qu’Entity Framework re-créé sa base de données.

Comment supprimer correctement la base ?

Dans Visual Studio, menu View puis SQL Server Object Explorer.

2014-07-29 16_31_53

Dépliez SQL Server, sélectionnez votre instance locale, dépliez Databases et (enfin), faîtes un clic-droit sur le nom de votre base puis Delete:

2014-07-29 16_33_44

Note: Si votre base n’apparait pas ici, allez d’abord dans Server Explorer (toujours dans le menu View) puis faîtes un clic-droit sur la Data Connections puis:

2014-07-29 16_41_14

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s