之前一直是使用Database first,沒有使用過 code first.所以今天就來試試
依下列步驟
- 建立新 MigrationsDemo 主控台應用程式
- 將最新版本 EntityFramework NuGet 套件新增至專案
- [工具] –> [程式庫套件管理員] –> [套件管理員主控台]
- 執行 Install-package EntityFramework 命令
- 使用如下所示的程式碼新增 Model.cs 檔案。 此程式碼會定義構成我們網域模型的單一 Blog 類別,以及作為 EF Code First 內容的 BlogContext 類別
Model.cs 內容
public BlogContext() : base("name=BlogContext") { } 這句等下要對應app.config
在App.config 中加入這段
<connectionStrings>
<add name="BlogContext" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=Blogs;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
BlogContext 就是剛剛Model 中 BlogContext的連線字串
Blogs 就是要建立的資料庫名稱
接下來是Program.cs的撰寫
class Program
{
static void Main(string[] args)
{
using (var db = new BlogContext())
{
db.Blogs.Add(new Blog { Name = "Andy" });
db.SaveChanges();
foreach (var item in db.Blogs)
{
Console.WriteLine("blog name:"+item.Name);
}
}
Console.WriteLine("請按任意鍵退出....");
Console.ReadKey();
}
}
執行主控台程式
資料庫就會建立了
在套件管理員主控台中執行 Enable-migrations 命令
202109140213137_InitialCreate.cs 是前面是流水號每個人不一樣
內容如下
再來如果想要再對Table 執行動作的話:
在套件管理員主控台中執行 Add-migrations addColumn 命令
addColumn 的名稱,可以自行輸入自己想要的名稱
在套件管理員主控台中執行 Update-Database 命令
再來看一下資料庫
參考