第一次使用Code First建立資料庫的學習筆記
前言
Entity Framework 的建置分成Database First
Code First
Model First
三種
自己比較常用的是Database First
但因專案需求需要用Code First
於是有的這次的學習
規劃資料圖表
我這次設計了兩張表,分別為Department(部門)與Member(員工)
這兩張表分別為一對多的關係,一個部門可以對到多個員工
實作程式
建立部門物件
/// <summary>
/// 部門
/// </summary>
class Department
{
public Guid DepartmentId { get; set; }
public string DepartmentName { get; set; }
public virtual List<Member> Members { get; set; }
}
我使用了Guid來做為部門的ID
下方public virtual List
指的是一個部門可以對到多個員工
也就是這張表的關聯性
建立員工物件
/// <summary>
/// 員工
/// </summary>
class Member
{
public int MemberId { get; set; }
public string MemberName { get; set; }
public Guid DepartmentId { get; set; }
public virtual Department Department { get; set; }
}
相對於部門
public virtual Department Department { get; set; }
指的是員工對部門的一對一的關係
而因為是以Department的ID作為FK來對應
所以需要將DepartmentId一起設定進來
建立DBContext
class CompanyContext : DbContext
{
public DbSet<Department> Departments { get; set; }
public DbSet<Member> Members { get; set; }
}
這裡就是設定需要使用到的資料表
CompanyContext
指的就是我們的DB
建立執行程序
class Program
{
static void Main(string[] args)
{
using (var db = new CompanyContext())
{
Console.Write("Insert Department Name:");
var depName = Console.ReadLine();
var dep = new Department { DepartmentId = Guid.NewGuid(), DepartmentName = depName };
db.Departments.Add(dep);
db.SaveChanges();
var qry = from d in db.Departments
select d;
foreach (var item in qry)
{
Console.WriteLine($@"ID = {item.DepartmentId} , Name = {item.DepartmentName}");
}
Console.WriteLine("Press any key to quite.");
Console.ReadKey();
}
}
}
本範例僅Insert部門
歡迎自行修改
執行結果
範例程式
https://github.com/charley85470/CodeFirstTestProj
參考資料
https://msdn.microsoft.com/zh-tw/data/jj193542(v=vs.113).aspx
Write By Charley Chang
新手發文,若有錯誤還請指教,
歡迎留言或Mail✉給我
本著作係採用創用 CC 姓名標示-非商業性-相同方式分享 4.0 國際 授權條款授權.