2

Je sais que cette question a été posée plusieurs fois, mais je suis toujours incapable de trouver une question semblable à mon scénario. Je travaille sur un projet Web ASP Core ASPAPnet. Tout a bien fonctionné et je ne peux pas vraiment reproduire quoi que ce soit si je l'ai fait pour tout gâcher.ASP.NET Core: tentative d'attacher une base de données nommée pour le fichier a échoué

Il est censé débogage à l'aide de cette chaîne de connexion, qui est récupéré à partir du fichier appsettings.Development.json:

"DefaultConnection": 
    "Data Source=(localdb)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|MyProj.mdf" 

Lorsque vous appelez context.Database.CreateIfNotExists();, je reçois l'erreur suivante:

système. Data.SqlClient.SqlException a eu lieu (HResult 0x80131904):

An attempt to attach an auto-named database for file C:\Users\Shimmy\Documents\Visual Studio 2017\Projects\MyProj\MyProj.Api\AppData\MyProj.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.
Source: .Net SqlClient Data Provider
StackTrace: at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)

Je suis en W ebAPI en tant qu'application de console Kestrel.

Voici ce que j'ai essayé:

  • Ajout Integrated Security=True ou MultipleActiveResultSets=True à la chaîne de connexion
  • Ajouté le chemin complet de la chaîne de connexion
  • Suppression et recréer le MSSQLLocalDB exemple
  • Réinstallation de SQL LocalDB

Remplacement du drapeau AttachDbFilename avec Initial Catalog=MyProj, a soulevé cette erreur:

System.Data.SqlClient.SqlException occurred
HResult: 0x80131904
Message: Cannot open database "MyProj" requested by the login. The login failed. Login failed for user 'SHIMMY-PC\Shimmy'.
Source: .Net SqlClient Data Provider
StackTrace: at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)

Mais shimmy PC \ Shimmy ne semble pas être dans les utilisateurs de l'instance:

enter image description here

Répondre

0

J'ai eu à travailler seulement si je pré-crée le fichier de base de données, ce qui n'est pas vraiment ce que je veux mais je ne vais pas me disputer dessus. Par ailleurs, j'ai trouvé un moyen pratique de supprimer/créer une base de données qui ne pose pas trop de problèmes. J'ouvre la CLI du développeur et navigue jusqu'au dossier projet/solution, puis appelle le dotnet ef database, d'abord avec drop puis update.