这是我的解决方案结构:
应用
这是一个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"
它引用了ApplicationClassLibrary
。
ApplicationApi
这是一个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"
它引用了ApplicationClassLibrary
ApplicationClassLibrary
该项目包含dbContext
和IdentityModel
,并且迁移从此处运行。
问题在于,当我运行ApplicationApi并使用邮递员调用此代码时:
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-5cb5b1db-6c48-49c7-93b2-ba81ded39c1c.mdf'作为数据库'aspnet-Application- 5cb5b1db-6c48-49c7-93b2-ba81ded39c1c'
所以基本上出于某种原因,我的ApplicationApi
试图创建或使用现有的.mdf
文件吗?我该如何解决这个问题?
答案 0 :(得分:0)
它的意思是因为我已经具有创建db文件的父连接字符串,所以我仅应引用它。因此,我依赖于同一数据库的任何其他项目的连接字符串都应该像这样简单:
<add name="DefaultConnection"
connectionString="Data Source=.\SQLEXPRESS;Database=aspnet-Application-5cb5b1db-6c48-49c7-93b2-ba81ded39c1c;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />