C# 2个数据库一个应用程序。。使用dotnet core ef(无模型)将一个设置为只读?

C# 2个数据库一个应用程序。。使用dotnet core ef(无模型)将一个设置为只读?,c#,database,entity-framework,.net-core,C#,Database,Entity Framework,.net Core,有一个项目,我有我的应用程序,其中有它的数据库和模型,但我需要连接到另一个数据库,现在我需要从导入。我已经找到了很多文章,展示了如何设置第二个数据库,但不清楚如何在不创建模型的情况下使用它。我要说的是,我已经对此进行了一段时间的研究,似乎找不到一个连贯的答案 这里有几点 第二个数据库是只读的 只读上下文中的数据在应用程序中的几个表上拆分 我们希望进行映射以尽可能快地导入 这并不是说只读的模型是被禁止的,而是如果它是动态类型的或创建的,那么它是最好的 看起来我的项目现在有3个其他的数据库来获取信

有一个项目,我有我的应用程序,其中有它的数据库和模型,但我需要连接到另一个数据库,现在我需要从导入。我已经找到了很多文章,展示了如何设置第二个数据库,但不清楚如何在不创建模型的情况下使用它。我要说的是,我已经对此进行了一段时间的研究,似乎找不到一个连贯的答案

这里有几点

  • 第二个数据库是只读的
  • 只读上下文中的数据在应用程序中的几个表上拆分
  • 我们希望进行映射以尽可能快地导入
  • 这并不是说只读的模型是被禁止的,而是如果它是动态类型的或创建的,那么它是最好的
  • 看起来我的项目现在有3个其他的数据库来获取信息,就像添加的信息一样
主要问题 当第二个数据库为只读时,是否存在允许从第二个数据库导入应用程序数据库的适当工作流

这是我到目前为止所拥有的

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();

    }
}
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; }
}
公共类启动
{
public void配置服务(IServiceCollection服务)
{
AddDbContext是我的想法来源

看起来太过分了

逆向工程it 另一个想法是从字面上理解它,并为此建立模型


但我看到的问题是,首先,在组织上,如果数据库有几百个表怎么办?我会有一堆模型文件。我知道有一些应用程序有几K个表。这会淹没真正的应用程序,而且..看起来也有点过火。

实体框架不太适合这种情况


我的建议是使用普通的ADO.NET。

您只需要将数据从“只读”数据库导入EF数据库?没有其他交互?需要多久进行一次?正确,这只是从“只读”数据库导入在我的EF数据库中。它不是一个直接的表到表的关系,它确实需要在我的数据库中进行检查以决定是否更新或插入。这种情况每天发生一次。我只使用vanilla ADO.NET。这并不是EF添加任何值的情况。公平地说,我为什么要问这个问题。我想我不确定是否有什么东西会被遗漏如果没有在那里使用ef。希望尽可能保持灵活性。您是否希望给出您的答案以便我可以接受?注意:“需要注意的是,.NET Core不再具有DataSet、DataTable和相关对象。但我们拥有所有的核心功能,如连接、命令、参数、DataReader和其他相关对象。”我想,从传递EF时缺少什么开始