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

问题描述:

我们有一个数据库,它们使用CodeFirst构建它。 现在我运行了一条SQL命令并向该数据库添加了一个新表。 但现在我还想看到它的生成的对象类,它的DBContext定义,等等。在代码中的第一个代码,所以我可以在我的LINQ查询中使用它们。 所以我做了以下3号方法从此MSDN页面: https://msdn.microsoft.com/en-us/library/jj200620.aspx在使用CodeFirst创建的DBContext中包含一个新表格

但它没有做到这一点。例如,它没有添加任何定义这个新表DBContext.cs文件,例如所用的是有这样的定义我所有的其他表:

DbSet<Zipcode> Zipcodes { get; set; } 

但一直没有添加我什么。

这样做的正确方法是什么?

我不知道一种方法来简单地添加一个新表,并使其与现有模型“即插即用”,无需手动工作。我知道的有两个选项:

  1. 重建使用代码首先从数据库模型,包括您添加的表
  2. 手动创建该表为一类,并在模型中加入DbSet和实体在OnModelCreating方法
+0

我真的从第一位开始。所以你的意思是我应该仍然手动添加DbSet定义到我的上下文中? – Travolta

+0

不,你不需要在这种情况下手动添加DBSet。使用#1路线,首先删除原始模型和所有关联的类。然后创建一个新模型(如果您想要原始模型,则使用相同的名称),并创建您想要的所有表格,就像您第一次创建模型时一样。如果删除原始模型并将新模型添加到所需的所有表格中,则无需手动添加DBSets。 –

+0

ok我如何删除原始模型?这个东西,我最看到它作为POCO类,它们的名字与DB中表的名字相同。 – Travolta

Code First from Database只适用于已有数据库的情况。如果你想添加一个新的表,你将不得不开始使用代码优先(单独),这意味着:在实体邮编到模型,DbSet添加到的DbContext后,当你编译将在数据库中生成de表。