刚接触EF CodeFirst,有一个问题:
我开始的时候新建了2张表,并且已经运行成功,也用Migration成功更新过数据库。现在我新增了一张表,写好了类,指定了连接字符串。使用Migration的时候,生成的Migration文件内容为空:
public partial class AddProduct : DbMigration { public override void Up() { } public override void Down() { } }
请问,这种情况应该如何处理?
执行Add-Migration命令,生成新的Migration代码,是把你当前的code和数据库连接字符串中的数据库比较,把差异写到新的代码文件里。如果你添加了Product的代码,而没有生成Migration, 原因可能有2个:
1. 数据库里面已经有了Product表。可以先删除数据库,用Update-Database生成数据库,在执行Add-Migration
2. 有可能是你的Product类没有添加到DBContext中。 把Product类加入到DBContext中,在执行Add-Migration