創建ConsoleDome控制台應用程式 從NuGet包管理器安裝EntityFramework 創建DbContextDome類並繼承DbContext 設置config 創建實體模型 在程式包管理器控制台執行Enable-Migrations來創建Configuration配置ef 最後執行Up ...
創建ConsoleDome控制台應用程式
從NuGet包管理器安裝EntityFramework
創建DbContextDome類並繼承DbContext
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命令
一、Enable-Migrations
說明:為項目啟用遷移。此命令為項目添加Migrations文件夾,其中包括兩個文件:
Configuration類:此類允許針對上下文配置遷移的行為
InitialCreate遷移:此遷移在啟用遷移之前生成。如果在啟用遷移之前沒有生成資料庫,則不會將此文件加入到項目中,而是在首次調用"Add-Migration"命令時生成。
語法:Enable-Migrations
二、Add-Migration
說明:根據上一次遷移以來對模型所做的更改,為下一次遷移搭建基架。
語法:Add-Migration "[Name]"
Name:遷移顯示名字,將與當前生成文件時間戳構成生成的遷移文件名
三、Update-DataBase
說明:將所有掛起的遷移應用與資料庫
語法:Update-Database -[Option]
Option:Vcrbose 在控制台顯示遷移所運行的SQL
TargetMigration:[Name] 遷移到特定的版本,如果需要回滾到空資料庫,則可以將[Name]寫為$InitialDatabase
Script 是遷移生成腳本而不執行
SourceMigration:[Name]源遷移
四、自動遷移
說明:在部署應用程式時希望在應用程式啟動時通過雖有掛起的遷移自動升級資料庫
代碼:Database.SetInitializer(new MigrateDatabaseToLatestVersion<DbContext, Configuration>());