在最基本的层面上,您创建一个类来表示您的表,一个上下文类(派生自 DbContext),然后在包管理器控制台中执行命令以创建迁移/脚本和/或直接更新数据库模式(将其视为rake db migrate
EF 代码优先)。
public class User
{
public string Username {get;set;}
public string Password {get;set;}
}
public class DatabaseContext : DbContext
{
public DbSet<User> Users {get;set;}
}
工具->库包管理器->包管理器控制台
打开控制台窗口后,确保在窗口顶部的“默认项目”下拉列表中选择了具有您的实体/上下文的项目,然后执行以下命令:
Add-Migration "Description of your migration"
这将为您创建一个迁移类,该类代表您自上次迁移以来对数据库的更改。如果这是第一个(假设您从一个空数据库开始),它还将生成一个名为“__MigrationHistory”的系统表,用于跟踪哪些迁移已应用于数据库。
Update-Database -script
使用 -script 标志执行 Update-Database 将生成一个 SQL 脚本,您可以在需要时将其保存/签入到源代码控制中。如果您只想在没有脚本的情况下更新数据库本身,只需去掉 -script 标记。
确保您在 web.config 中有一个连接字符串,其名称与您的上下文类相同(本例中为“DatabaseContext”)。这可以指向您现有的数据库,但它只会管理/跟踪对您的上下文类中定义的实体的更改。我发现有时在使用 Add-Migration 和 Update-Database 命令时需要显式定义上下文,如下所示:
Add-Migration "Description of your migration" -connectionstringname "DatabaseContext"