创建ConsoleDome控制台应用程序
从NuGet包管理器安装EntityFramework
创建DbContextDome类并继承DbContext
class="brush:csharp;gutter:true;">public class DbContextClass : DbContext { /// <summary> /// ConnectionString就是在config中设置的数据库链接字符串 /// </summary> public DbContextClass() : base("ConnectionString") { } public DbSet<user> user { get; set; } public DbSet<BlogModel> blog { get; set; } }
设置config
<connectionStrings> <add name="ConnectionString" connectionString="server=.;database=EFCodeFirstDB;uid=***;pwd=***" providerName="System.Data.SqlClient"/> </connectionStrings>
创建实体模型
public class user { public int id { get; set; } public string username { get; set; } public string pwd { get; set; } [Column(TypeName = "nvarchar")] [MaxLength(200)] public string Email { get; set; } public string pwdd { get; set; } } public class BlogModel { public int id { get; set; } /// <summary> /// /// </summary> public string Tiele { get; set; } /// <summary> /// /// </summary> public string TieleUrl { get; set; } /// <summary> /// /// </summary> public string Content { get; set; } /// <summary> /// /// </summary> public string ImgUrl { get; set; } /// <summary> /// /// </summary> public DateTime CreateDate { get; set; } /// <summary> /// /// </summary> public string ReadNumber { get; set; } }
在程序包管理器控制台执行Enable-Migrations来创建Configuration配置ef
最后执行Update-Database -Verbose来更新数据库
附加codefirst命令
说明:为项目启用迁移。此命令为项目添加Migrations文件夹,其中包括两个文件:
Configuration类:此类允许针对上下文配置迁移的行为
InitialCreate迁移:此迁移在启用迁移之前生成。如果在启用迁移之前没有生成数据库,则不会将此文件加入到项目中,而是在首次调用"Add-Migration"命令时生成。
语法:Enable-Migrations
说明:根据上一次迁移以来对模型所做的更改,为下一次迁移搭建基架。
语法:Add-Migration "[Name]"
Name:迁移显示名字,将与当前生成文件时间戳构成生成的迁移文件名
说明:将所有挂起的迁移应用与数据库
语法:Update-Database -[Option]
Option:Vcrbose 在控制台显示迁移所运行的SQL
TargetMigration:[Name] 迁移到特定的版本,如果需要回滚到空数据库,则可以将[Name]写为$InitialDatabase
Script 是迁移生成脚本而不执行
SourceMigration:[Name]源迁移
说明:在部署应用程序时希望在应用程序启动时通过虽有挂起的迁移自动升级数据库
代码:Database.SetInitializer(new MigrateDatabaseToLatestVersion<DbContext, Configuration>());