在使用 CodeFirst 创建的 DBContext 中包含一个新的 table

Including a new table in the DBContext made with CodeFirst

我们有一个他们使用 CodeFirst 构建的数据库。 现在我 运行 一个 SQL 命令并向该数据库添加了一个新的 table。 但现在我还想在代码优先代码中看到它生成的对象 class、它的 DBContext 定义等,这样我就可以在我的 LINQ 查询中使用它们。 所以我所做的是遵循此 MSDN 页面中的第 3 种方法: https://msdn.microsoft.com/en-us/library/jj200620.aspx

但它没有做对。例如,它没有为这个新的 table 添加任何定义到 DBContext.cs 文件,例如我所有其他曾经存在的 table 定义如下:

DbSet<Zipcode> Zipcodes { get; set; } 

但它没有为我添加任何东西。

正确的做法是什么?

数据库中的代码优先仅在您已经拥有数据库时才有效。如果你想添加一个新的 table,你将不得不开始使用 Code-First(单独),这意味着:将实体 Zipcode 添加到模型中,DbSetDbContext 然后当你编译它会在数据库中生成 de table.

我不知道有什么方法可以简单地添加一个新的 table 并将它 'plug-n-play' 与您现有的模型一起使用,而无需手动操作。我知道的两个选项是:

  1. 使用 DB 中的 Code First 重建模型并包含您添加的 table
  2. 手动创建 table 作为 class 并在模型的 OnModelCreating 方法中添加 DbSet 和实体