C# 实体框架-两个项目,同一个数据库

C# 实体框架-两个项目,同一个数据库,c#,asp.net,entity-framework,identity,C#,Asp.net,Entity Framework,Identity,我的解决方案中有两个项目,它们都引用同一个数据库。 使用ASP.NET Core EF&Identity,我连接到同一个数据库以存储我的所有IdentityServer信息 项目标识服务器 为IdentityServer生成迁移+数据库 有一些共同的表是双方共享的,一些是为IdentityServer创建的,另一些是为IdentityServer BackOffice创建的,我怎么能忽略一些表的创建呢?或者任何其他建议,以便我可以让数据库包含我需要的所有表?您可以忽略删除其数据库集的表的创建。您

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

项目标识服务器 为IdentityServer生成迁移+数据库
有一些共同的表是双方共享的,一些是为IdentityServer创建的,另一些是为IdentityServer BackOffice创建的,我怎么能忽略一些表的创建呢?或者任何其他建议,以便我可以让数据库包含我需要的所有表?

您可以忽略删除其数据库集的表的创建。

您可以忽略删除其数据库集的表的创建。

我无法控制数据库集的标识,它是一个导入的库。我只能像在PasswordPolicy和PasswordHistory中那样添加新的。您有什么理由从IdentityServerBackOffice中的IdentityDbContext扩展ApplicationDbContext吗?尝试从DbContext扩展,表的问题已经存在就是因为这个。在IdentityServerBackOffice(ISBO)中,我希望访问与IdentityServer相同的用户,所以是的。据我所知,我需要对其进行扩展,以便在两个项目上查询相同的用户。ISBO创建用户,IS访问这些用户以进行登录。如果您想访问用户,解决方案之一是为IdentityDbContext创建假外键。如果您扩展IdentityDbContext,您将始终创建他的模型两次,因为您无法更改Identity的基本模型。我无法控制Identity的数据库集,它是一个导入的库。我只能像在PasswordPolicy和PasswordHistory中那样添加新的。您有什么理由从IdentityServerBackOffice中的IdentityDbContext扩展ApplicationDbContext吗?尝试从DbContext扩展,表的问题已经存在就是因为这个。在IdentityServerBackOffice(ISBO)中,我希望访问与IdentityServer相同的用户,所以是的。据我所知,我需要对其进行扩展,以便在两个项目上查询相同的用户。ISBO创建用户,IS访问这些用户以进行登录。如果您想访问用户,解决方案之一是为IdentityDbContext创建假外键。如果您扩展IdentityDbContext,您将始终创建他的模型两次,因为您无法更改Identity的基本模型。
namespace IdentityServer.Data
{
    public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, string>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {}
    }
}
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; }
    }
}
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
dotnet ef migrations add InitialIdentityServerIdentity -c ApplicationDbContext -o Data/Migrations/IdentityServerBackOffice/Identity

dotnet ef database update -c ApplicationDbContext