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,我怎麼能忽略一些創作表?或者任何其他建議,以便我可以擁有所有我需要的表格的數據庫?
我無法控制DbSets for Identity,它是一個導入的庫。我只能像我爲PasswordPolicy和PasswordHistory那樣添加新的。 –
你有什麼理由在IdentityServerBackOffice中從IdentityDbContext擴展ApplicationDbContext?嘗試從DbContext擴展,表已存在的問題是因爲這一點。 –
在IdentityServerBackOffice(ISBO)中,我希望能夠訪問與IdentityServer相同的用戶,所以是的。在我的理解中,我需要擴展它,以便可以在兩個項目上查詢相同的用戶。 ISBO創建用戶,IS訪問那些用於登錄目的的相同用戶。 –