![](/img/trans.png)
[英]Using 2 databases sharing one model in Entity Framework Core
[英]2 databases one app .. one as read only using dotnet core ef without model possible?
有一個項目,其中有我的應用程序,其中包含數據庫和模型,但是現在我需要從中導入到另一個數據庫。 我發現有許多文章介紹了如何設置第二個數據庫,但是不清楚如何在不創建模型的情況下使用它。 我要說的是,我已經對此進行了一段時間的研究,似乎找不到一個連貫的答案。
這里有幾點
主要問題是否存在適當的工作流程,當第二個數據庫為只讀時,該工作流程是否允許從第二個數據庫導入應用程序的數據庫?
這是我到目前為止的
Startup.cs
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddDbContext<FDWDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("FDWConnection")));
services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
options.Password.RequireDigit = true;
options.Password.RequireLowercase = true;
options.Password.RequireNonAlphanumeric = true;
options.Password.RequireUppercase = true;
options.Password.RequiredLength = 24;
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
}
}
DBContext.cs
public class FDWDbContext : DbContext
{
public FDWDbContext(DbContextOptions<FDWDbContext> options)
: base(options)
{
// the second database
}
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
// the app's database
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
public DbSet<ApplicationUser> user { get; set; }
public DbSet<invoice> invoice{ get; set; }
public DbSet<expense> expense { get; set; }
}
動態創建這里的問題是我找不到關於此主題的太多信息。 因此,我曾經想過要建立一個參考表,並使用類似的方法來映射和緩存(數據庫通常不會快速更改),然后“創建”這樣的模型。 如何從Entity Framework Core中的DbContext獲取列名和相應的數據庫類型是我想到的地方。
似乎已經結束了。
對它進行逆向工程另一個想法是從字面上吸吮它,並為此建立模型。
但是,這是我首先從組織上看到的問題,如果該數據庫有幾百個表怎么辦? 我會有一堆模型文件。 我知道有幾張桌子的應用程序。 那將會淹沒真正的應用程序,並且..好像也被殺死了。
實體框架不太適合這種情況。
我的建議是使用普通香草ADO.NET。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.