C# ASP.NET Web Api基础提供程序无法打开mdf已存在
这是我的解决方案结构: 应用程序 这是一个ASP.NET MVC应用程序。它在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
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代码时,我明白了这一点