为什么 DbMigration 中的 Up() 方法是抽象的而 Down() 方法是虚拟的 class

Why is the Up() method abstract and the Down() method virtual in the DbMigration class

如果您查看 System.Data.Entity.Migrations 命名空间中抽象 class DBMigration 的签名:

public virtual void Down();
public abstract void Up();

您会看到 Down() 标记为 virtualUp 标记为 abstract。 virtual和abstract的区别在于一个抽象函数can have functionality in it.

Up() 函数有哪些默认功能,为什么 Down() 函数没有默认功能。

您需要覆盖 Up(),而覆盖 Down() 是可选的。这对数据库迁移指令有意义。

另见 What is the difference between an abstract function and a virtual function?