如果查看DBMigration
命名空间中抽象类System.Data.Entity.Migrations
的签名:
public virtual void Down();
public abstract void Up();
您会看到Down()
标记为virtual
,Up
标记为abstract
。虚拟和抽象之间的区别在于抽象函数can have functionality in it。
Up()
函数可以默认使用哪种功能,为什么不是Down()
函数的情况。
答案 0 :(得分:2)
您需要覆盖Up()
,而覆盖Down()
是可选的。这对数据库迁移指令很有意义。
另见What is the difference between an abstract function and a virtual function?。