C# ASP.NET Web Api基础提供程序无法打开mdf已存在

C# ASP.NET Web Api基础提供程序无法打开mdf已存在,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,这是我的解决方案结构: 应用程序 这是一个ASP.NET MVC应用程序。它在web.config中有此连接字符串: Data Source=.\SQLEXPRESS; Initial Catalog=aspnet-Application-5cb5b1db-6c48-49c7-93b2-ba81ded39c1c; Integrated Security=SSPI; AttachDBFilename=|DataDirectory|\aspnet-Application-5cb5b

这是我的解决方案结构:

应用程序

这是一个ASP.NET MVC应用程序。它在
web.config
中有此连接字符串:

Data Source=.\SQLEXPRESS;
   Initial Catalog=aspnet-Application-5cb5b1db-6c48-49c7-93b2-ba81ded39c1c;
   Integrated Security=SSPI;
   AttachDBFilename=|DataDirectory|\aspnet-Application-5cb5b1db-6c48-49c7-93b2-ba81ded39c1c.mdf
providerName="System.Data.SqlClient" 
Data Source=.\SQLEXPRESS;
     Initial Catalog=aspnet-Application-5cb5b1db-6c48-49c7-93b2-ba81ded39c1c;
     Integrated Security=SSPI;
     AttachDBFilename=|DataDirectory|\aspnet-Application-5cb5b1db-6c48-49c7-93b2-ba81ded39c1c.mdf" 
providerName="System.Data.SqlClient" 
它引用了
ApplicationClassLibrary

应用程序API

这是一个Web API应用程序,其连接字符串位于
app.config

Data Source=.\SQLEXPRESS;
   Initial Catalog=aspnet-Application-5cb5b1db-6c48-49c7-93b2-ba81ded39c1c;
   Integrated Security=SSPI;
   AttachDBFilename=|DataDirectory|\aspnet-Application-5cb5b1db-6c48-49c7-93b2-ba81ded39c1c.mdf
providerName="System.Data.SqlClient" 
Data Source=.\SQLEXPRESS;
     Initial Catalog=aspnet-Application-5cb5b1db-6c48-49c7-93b2-ba81ded39c1c;
     Integrated Security=SSPI;
     AttachDBFilename=|DataDirectory|\aspnet-Application-5cb5b1db-6c48-49c7-93b2-ba81ded39c1c.mdf" 
providerName="System.Data.SqlClient" 
它引用了ApplicationClassLibrary

ApplicationClassLibrary

此项目包含
dbContext
IdentityModel
,迁移从这里运行

问题是,当我运行ApplicationApi并使用Postman调用此代码时:

public String CheckUser(string username, string password)
{
     var user = dbContext.Users.SingleOrDefault(u => u.UserName == username);
     return user.UserName;
}
我得到这个错误:

数据库“C:\Users\uuu\source\repos\Application\Application\App_Data\aspnet-Application-5cb5b1db-6c48-49c7-93b2-ba81ded39c1c.mdf”已存在。请选择其他数据库名称

无法将文件“C:\Users\uuu\source\repos\Application\ApplicationApi\bin\Debug\aspnet-Application-5cb5db-6c48-49c7-93b2-ba81ded39c1c.mdf”附加为数据库“aspnet-Application-5cb5db-6c48-49c7-93b2-ba81ded39c1c”


因此,基本上出于某种原因,我的
应用程序API
正在尝试创建或使用现有的
.mdf
文件?如何解决这个问题?

我找到了一个适合我的解决方案。它来自这个链接

它的意思是,因为我已经有一个创建db文件的父连接字符串,所以我应该只引用它。因此,对于依赖同一数据库的任何其他项目,我的连接字符串应该如下所示:

<add name="DefaultConnection" 
     connectionString="Data Source=.\SQLEXPRESS;Database=aspnet-Application-5cb5b1db-6c48-49c7-93b2-ba81ded39c1c;Integrated Security=SSPI;" 
     providerName="System.Data.SqlClient" />


但是我需要那个连接字符串来访问数据库?我的意思是删除初始目录代码,让剩下的代码留在那里{“尝试为文件C:\\Users\\uuu\\source\\repos\\Application\\ApplicationApi\\bin\\Debug\\aspnet-Application-5cb51db-6c48-49c7-93b2-ba81ded39c1c.mdf附加自动命名数据库失败。存在同名数据库,或无法打开指定文件,或位于UNC共享上。”}哦,现在当我从应用程序API中删除InitalCatalog代码时,我明白了这一点