如何更改 ASP.NET Identity 用于创建其必要表的数据库?
How to change the database that ASP.NET Identity use for creating its necessary tables?
我的解决方案中有 2 个项目
- 网页UI
- 网页API
我正在使用 Web API 项目进行身份验证(ASsp.Net 身份框架)。
以下是 Web.API 项目
中连接字符串的 web.config 设置
<connectionStrings>
<add name="AuthContext" connectionString="Data Source=./SQLEXPRESS;Initial Catalog=TestDB;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
我的 DbContext Class
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 项目中所做的
- 启用迁移
- 添加迁移 InitialCreate
- 更新数据库
它总是创建一个名为 AuthContext 的新数据库,而不是在 TestDB 中添加必要的表。
我将 Web UI 项目设置为解决方案中的启动项目。如何让更新数据库在 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
的文件,您可以在构造函数中更改连接字符串名称,但由于您有自定义 class ,我觉得概念是一样的:
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; }
}
我的解决方案中有 2 个项目
- 网页UI
- 网页API
我正在使用 Web API 项目进行身份验证(ASsp.Net 身份框架)。 以下是 Web.API 项目
中连接字符串的 web.config 设置<connectionStrings>
<add name="AuthContext" connectionString="Data Source=./SQLEXPRESS;Initial Catalog=TestDB;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
我的 DbContext Class
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 项目中所做的- 启用迁移
- 添加迁移 InitialCreate
- 更新数据库
它总是创建一个名为 AuthContext 的新数据库,而不是在 TestDB 中添加必要的表。
我将 Web UI 项目设置为解决方案中的启动项目。如何让更新数据库在 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
的文件,您可以在构造函数中更改连接字符串名称,但由于您有自定义 class ,我觉得概念是一样的:
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; }
}