实体框架 - 两个项目,相同的数据库

时间:2017-06-01 09:26:08

标签: c# asp.net entity-framework identity

我的解决方案中有两个项目,它们都引用了相同的数据库。 使用ASP.NET Core EF&身份我正在连接到同一个数据库以存储我的所有IdentityServer信息。

项目IdentityServer

namespace IdentityServer.Data
{
    public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, string>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {}
    }
}

项目IdentityServerBackOffice

namespace IdentityServerBackOffice.Data
{
    public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, string>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {}

        public DbSet<PasswordPolicy> PasswordPolicy { get; set; }
        public DbSet<PasswordHistory> PasswordHistory { get; set; }
    }
}

当我想使用EF生成数据库时,我得到一些表存在的错误,因为它们是由第一个数据库更新创建的

为IdentityServer生成迁移+数据库

dotnet ef migrations add InitialIdentityServerConfigurationDbMigration -c ConfigurationDbContext -o Data/Migrations/IdentityServer/ConfigurationDb
dotnet ef migrations add InitialIdentityServerPersistedGrantDbMigration -c PersistedGrantDbContext -o Data/Migrations/IdentityServer/PersistedGrantDb
dotnet ef migrations add InitialIdentityServerIdentity -c ApplicationDbContext -o Data/Migrations/IdentityServer/Identity

dotnet ef database update -c ApplicationDbContext

为IdentityServer生成迁移+数据库

dotnet ef migrations add InitialIdentityServerIdentity -c ApplicationDbContext -o Data/Migrations/IdentityServerBackOffice/Identity

dotnet ef database update -c ApplicationDbContext

有两个共享的公用表,一些是为 IdentityServer 创建的,另一些是为 IdentityServerBackOffice 创建的,我如何忽略某些表的创建?或任何其他建议,以便我可以拥有我需要的所有表格的数据库?

1 个答案:

答案 0 :(得分:0)

您可以忽略删除其DbSet的表的创建。