现有的应用程序从数据库更改c#asp.net mvc core

时间:2018-05-16 13:45:54

标签: c#

所以我开发了一个应用程序,它使用数据库来获取它的信息。此数据库存在于一个包含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() };
}

基于该存储库,所有方法都已配置。 现在我发现在生产这个数据库我基于这个应用程序是没有相似的。它们实际上是两个独立的数据库,每个数据库都有多个表(就像通常的情况一样,我不会说当我开始使用这个数据库时我发现它很奇怪,但它不是我对我给出的任务提出质疑的地方)。 所以现在我想知道,有没有办法在没有实际完全开始的情况下进行这种转变?我可以以某种方式映射这些数据库,以便我的Home对象仍然可以包含所有32个属性或者这是不是吗?

提前致谢

0 个答案:

没有答案
相关问题