如何更改数据库说明ASP.NET Identity用于创建必要的表



我的解决方案中有两个项目

  1. Web UI
  2. 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项目中所做的。
  1. Enable-Migrations
  2. Add-Migration InitialCreate
  3. - 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; }
}

相关内容

  • 没有找到相关文章

最新更新