# [Entity Framework 6] Code First 開發流程整理 ## 前置作業 * 透過 Nuget 安裝 Entity Framework * 建立 Console 專案 ## 建立模型 範例以員工及部門作為資料範例,實現多對一的關係,以下定義員工(Staff)及部門(Department)類別。 * Staff.cs ```csharp= class Staff { public int ID { get; set; } public string Name { get; set; } [ForeignKey("Department")] public int DepartmentID { get; set; } public virtual Department Department { get; set; } } ``` * Department.cs ```csharp= class Department { public int ID { get; set; } public string Name { get; set; } public virtual List<Staff> Staffs { get; set; } } ``` 模型定義說明: * 員工類別:透過 ForignKey 設定把 DepartmentID 關聯到 Department 的 ID,並且新增 Department 導覽屬性。 * 部門類別:設定 Staffs 導覽屬性,定義部門中有多少員工。 ## 建立 Context 新增 MyCompanyContext 類別,並繼承 DbContext,並且透過 DbSet 建立 Staff 和 Department 的資料實體。 * MyCompanyContext.cs ```csharp= class MyCompanyContext : DbContext { public DbSet<Staff> Staff { get; set; } public DbSet<Department> Department { get; set; } } ``` ## 建立資料庫,建立範例資料 回到 Console 專案的 Main 方法,用以下程式進行資料的寫入。 ```csharp= using (MyCompanyContext context = new MyCompanyContext()) { /*建立部門*/ Department rd = new Department(); rd.ID = 1; rd.Name = "R&D"; context.Department.Add(rd); Department mis = new Department(); mis.ID = 2; mis.Name = "MIS"; context.Department.Add(mis); /*建立員工A*/ Staff staffA = new Staff(); staffA.ID = 1; staffA.Name = "JJ"; staffA.DepartmentID = 1; context.Staff.Add(staffA); context.SaveChanges(); } Console.WriteLine("Finish"); Console.ReadLine(); ``` 以上程式執行完成後,EntityFramework 會有完成以下功能 * 在 LocalDB 建立資料庫,預設資料庫名稱為 **專案命名空間.專案名稱**。 * 資料表名稱為實體的**類別名稱 + s**。  ###### tags: `Entity Framework` `Code Fist`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up