所以我开发了一个应用程序,它使用数据库来获取它的信息。此数据库存在于一个包含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个属性或者这是不是吗?
提前致谢