我的解决方案中有两个项目
- Web UI
- Web API
我正在使用Web API项目进行身份验证(ASsp。网络身份框架)。下面是网页。配置Web中连接字符串的设置。API项目
<connectionStrings>
<add name="AuthContext" connectionString="Data Source=./SQLEXPRESS;Initial Catalog=TestDB;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
我的DbContext类
public class AuthContext : IdentityDbContext<IdentityUser>
{
public AuthContext()
: base("AuthContext",throwIfV1Schema:false)
{
}
public static AuthContext Create()
{
return new AuthContext();
}
public DbSet<Client> Clients { get; set; }
public DbSet<RefreshToken> RefreshTokens { get; set; }
}
TestDB是一个现有的数据库,只有几个表。这是我在包管理器控制台
中的Web API项目中所做的。- Enable-Migrations
- Add-Migration InitialCreate
- - database就
它总是创建一个名为AuthContext的新数据库,而不是在TestDB中添加必要的表。
我将Web UI项目设置为解决方案中的启动项目。如何让update-database在TestDb中创建表,而不是创建新数据库。
是
让我们假设您有一个这样的连接字符串:
<connectionStrings>
<add name="TestDB" connectionString="Data Source=./SQLEXPRESS;
AttachDbFilename=|DataDirectory|TestDB.mdf;Initial Catalog=TestDB;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
在你的Models
文件夹中有一个名为IdentityModels.cs
的文件,你可以在构造函数中更改连接字符串名称,但由于你有一个自定义类,我认为这个概念是相同的:
public class AuthContext : IdentityDbContext<ApplicationUser>
{
public AuthContext()
: base("TestDB",throwIfV1Schema:false)
{
}
public static AuthContext Create()
{
return new AuthContext();
}
public DbSet<Client> Clients { get; set; }
public DbSet<RefreshToken> RefreshTokens { get; set; }
}