web-dev-qa-db-fra.com

Comment recréer une base de données pour Entity Framework?

Je suis dans un mauvais état avec mon projet ASP.Net MVC 5, en utilisant Code-First Entity Framework. Je ne me soucie pas de perdre des données, je veux juste pouvoir recommencer à zéro, recréer la base de données et commencer à utiliser les migrations Code-First. 

Actuellement, je suis dans un état où chaque tentative de mise à jour de la base de données aboutit à la levée d'une exception ou à l'obtention d'un message d'erreur. De plus, le site Web ne peut pas accéder correctement à la base de données. Comment puis-je effacer toutes les migrations, recréer la base de données et recommencer à zéro sans avoir à créer un nouveau projet? En d'autres termes, je veux garder mon code mais laisser tomber la base de données.

Plus tard, je souhaiterai également synchroniser la base de données de déploiement (SQL Server sur Azure). Encore une fois, cela ne me dérange pas de laisser tomber toutes les données - je veux juste que ça fonctionne.

Veuillez indiquer les étapes à suivre pour revenir à un état de propreté. Très appréciée.

132
Toby Sharp

Suivez les étapes ci-dessous:

1) Tout d’abord, allez dans l’Explorateur de serveurs de Visual Studio, vérifiez si les connexions de données ".mdf" de ce projet sont connectées. Dans ce cas, cliquez avec le bouton droit de la souris et supprimez-les.

2) Accédez à l'Explorateur de solutions, cliquez sur l'icône Afficher tous les fichiers.

3) Allez à App_Data, faites un clic droit et supprimez tous les fichiers ".mdf" pour ce projet.

4) Supprimez le dossier Migrations par un clic droit et supprimez-le.

5) Allez dans SQL Server Management Studio, assurez-vous que la base de données de ce projet n’y est pas, sinon supprimez-le.

6) Accédez à la console du gestionnaire de packages dans Visual Studio et tapez:

  1. Enable-Migrations -Force
  2. Add-Migration init
  3. Update-Database

7) Exécuter votre application

Remarque: à l'étape 6, partie 3, si vous obtenez une erreur "Impossible de joindre le fichier ...", c'est peut-être parce que vous n'avez pas complètement supprimé les fichiers de base de données dans SQL Server. 

198
Lin

Je voudrais ajouter que la réponse de Lin est correcte. 

Si vous supprimez incorrectement le MDF, vous devrez le réparer. Pour fixer les connexions vissées du projet au MDF. Réponse courte; recréez et supprimez-le correctement.

  1. Créez un nouveau MDF et donnez-lui le même nom que l'ancien MDF, placez-le dans le même dossier. Vous pouvez créer un nouveau projet et créer un nouveau mdf. Le MDF ne doit pas nécessairement correspondre à vos anciennes tables, car vous alliez le supprimer. Donc, créez ou copiez un ancien dans le bon dossier.
  2. Ouvrez-le dans l'explorateur de serveurs [double-cliquez sur le fichier mdf à partir de l'explorateur de solutions]
  3. Supprimez-le dans l'explorateur de serveur
  4. Supprimer de l'explorateur de solutions
  5. lancez update-database -force [Utilisez la force si nécessaire]

Fait, profitez de votre nouvelle base de données

UPDATE11/12/14 - Je l'utilise tout le temps lorsque je modifie une base de données de façon décisive .

  • Remet la base à l'original 
  • Exécutez la migration normale pour la remettre à la version actuelle

    1. Update-Database -TargetMigration:0 -force [Ceci détruira toutes les tables et toutes les données.] 
    2. Update-Database -force [utiliser la force si nécessaire]
43
Steve Coleman

Cela a fonctionné pour moi:

  1. Supprimer la base de données de l'explorateur d'objets SQL Server dans Visual Studio . Cliquez avec le bouton droit de la souris et sélectionnez Supprimer.
  2. Supprimez les fichiers mdf et ldf du système de fichiers - s’ils sont toujours présents.
  3. Reconstruire la solution.
  4. Démarrer l'application - la base de données sera recréée.
7
Donal

Je veux juste ajouter à l'excellente réponse de @Lin:

5) B. Si vous n'avez pas SQL Management Studio, allez à "Explorateur d'objets SQL Server" . Si vous ne pouvez pas voir votre base de données de projet dans la base de données "Explorateur d'objets SQL Server", cliquez sur " Ajouter un serveur SQL "pour l’ajouter manuellement à la liste. Ensuite, vous pouvez supprimer la base de données de la liste.

1
Dudi

Ma solution est la mieux adaptée pour :
- supprimé votre fichier mdf
- veux recréer votre base de données.

Afin de recréer votre base de données vous devez ajouter la connexion à l'aide de Visual Studio.

Étape 1 : Allez dans l'explorateur de serveurs, ajoutez une nouvelle connexion (ou cherchez une icône d'ajout de base de données).

Étape 2 : Modifier Source de données en Fichier de base de données Microsoft SQL Server .

Étape 3 : ajoutez le nom de base de données de votre choix dans le champ Nom du fichier de base de données (de préférence, le même nom que dans le fichier web.config AttachDbFilename attribut)

Étape 4 : cliquez sur Parcourir et naviguez jusqu’à votre emplacement préféré.

Étape 5 : dans la commande d'exécution de la console du gestionnaire de packages, update-database

0
Mbuso Mkhize

Une solution très simple possible qui a fonctionné pour moi. Après avoir supprimé les références à la base de données et les connexions trouvées dans l'explorateur server/serverobject, cliquez avec le bouton droit de la souris sur le dossier App_Data (il ne contient aucun objet dans l'application) et sélectionnez Ouvrir. Une fois ouvert mettez toute la base de données/etc. fichiers dans un dossier de sauvegarde ou si vous avez le courage de les supprimer. Exécutez votre application et il devrait tout recréer à partir de zéro.

0
edencorbin