2017-06-01 103 views
0

我在我的解決方案中有兩個項目,他們都參考相同的數據庫。 使用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,我怎麼能忽略一些創作表?或者任何其他建議,以便我可以擁有所有我需要的表格的數據庫?

回答

0

您可以忽略刪除其DbSet的表的創建。

+0

我無法控制DbSets for Identity,它是一個導入的庫。我只能像我爲PasswordPolicy和PasswordHistory那樣添加新的。 –

+1

你有什麼理由在IdentityServerBackOffice中從IdentityDbContext擴展ApplicationDbContext?嘗試從DbContext擴展,表已存在的問題是因爲這一點。 –

+0

在IdentityServerBackOffice(ISBO)中,我希望能夠訪問與IdentityServer相同的用戶,所以是的。在我的理解中,我需要擴展它,以便可以在兩個項目上查詢相同的用戶。 ISBO創建用戶,IS訪問那些用於登錄目的的相同用戶。 –

相關問題