首页 > 解决方案 > 从数据库 c# asp.net mvc core 更改现有应用程序

问题描述

所以我开发了一个应用程序,它使用数据库来获取它的信息。该数据库存在于一个具有 32 列的表中。所以我有一个模型“Home”,它有 32 个属性。我的应用程序有一个如下所示的 DbContext:

public class ApplicationDbContext : DbContext
{
    public DbSet<Home> homes { get; set; }
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
    {

    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.ApplyConfiguration(new HomeConfiguration());
    }
}

HomeConfiguration 看起来像这样:

class HomeConfiguration : IEntityTypeConfiguration<Home>
{
    public void Configure(EntityTypeBuilder<Home> builder)
    {
        builder.ToTable<Home>("Home");
        // Mappen Primary key
        builder.HasKey(t => new { t.Month, t.Number });
    }
}

在 Startup.cs 中建立连接

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ApplicationDbContext>(options =>  
      options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

    services.AddSession();
    services.AddMvc();
    services.AddScoped<IHomeRepository, HomeRepository>();
}

存储库构造函数如下所示:

public HomeRepository(ApplicationDbContext dbContext)
{
    _dbContext = dbContext;
    _homes2 = dbContext.homes;
    _homes = new List<Home>() { new Home() };
}

并基于该存储库配置所有方法。现在我发现在生产中,我基于这个应用程序的这个数据库是完全不同的。它们实际上是 2 个独立的数据库,每个数据库都有多个表(就像通常的情况一样,我不会说当我开始使用这个数据库时我觉得很奇怪,但我不应该质疑我被赋予的任务)。所以现在我想知道,有没有办法在不完全重新开始的情况下进行这种过渡?我能否以某种方式映射这些数据库,以便我的 Home 对象仍然可以包含所有 32 个属性,或者这是不行的?

提前致谢

标签: c#

解决方案


推荐阅读