簡體   English   中英

2個數據庫一個應用程序..一個數據庫只能使用dotnet core ef讀取而無法建立模型?

[英]2 databases one app .. one as read only using dotnet core ef without model possible?

有一個項目,其中有我的應用程序,其中包含數據庫和模型,但是現在我需要從中導入到另一個數據庫。 我發現有許多文章介紹了如何設置第二個數據庫,但是不清楚如何在不創建模型的情況下使用它。 我要說的是,我已經對此進行了一段時間的研究,似乎找不到一個連貫的答案。

這里有幾點

  • 第二個數據庫是只讀的
  • 來自只讀上下文的數據在應用程序中的幾個表上拆分
  • 希望做一個映射以盡可能快地導入
  • 並不是說禁止只讀模型,而是最好是動態鍵入或創建該模型
  • 看來我的項目現在還有其他3個DB可以從添加的信息中提取信息

主要問題是否存在適當的工作流程,當第二個數據庫為只讀時,該工作流程是否允許從第二個數據庫導入應用程序的數據庫?

這是我到目前為止的

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獲取列名和相應的數據庫類型是我想到的地方。

似乎已經結束了。

對它進行逆向工程另一個想法是從字面上吸吮它,並為此建立模型。

基於ASP.NET Core中的現有數據庫創建實體框架模型

但是,這是我首先從組織上看到的問題,如果該數據庫有幾百個表怎么辦? 我會有一堆模型文件。 我知道有幾張桌子的應用程序。 那將會淹沒真正的應用程序,並且..好像也被殺死了。

實體框架不太適合這種情況。

我的建議是使用普通香草ADO.NET。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM