entity framework 入門第一課
TRANSCRIPT
課程《Entity Framework 開發實務》
康廷數位 www.kangting.tw 1
入門第一課
課程需具備基礎能力
入門 C# 物件導向設計
具備關聯式資料庫基礎知識
康廷數位 www.kangting.tw 2
從 ADO.NET 到 Entity Framework
康廷數位 www.kangting.tw 3
Entity Framework 開發步驟
• 安裝 Entity Framework
• 建立模型檔案
• 設定連線字串
• 對應資料表
康廷數位 www.kangting.tw 4
Entity Framework 開發步驟
康廷數位 www.kangting.tw 5
Entity Framework 開發步驟
Entity Framework 開發步驟
• 安裝 Entity Framework
• 建立模型檔案
• 設定連線字串
• 對應資料表
康廷數位 www.kangting.tw 6
康廷數位 www.kangting.tw 7
DbContext
DbSet<ClassA>
DbSet<ClassB>
DbSet<ClassX>
DbSet …
建立模型檔案 - Entity Framework 開發步驟 -
康廷數位 www.kangting.tw 8
建立模型檔案
public class KTStoreContext : DbContext {
public KTStoreContext() :
base("name=KTStoreConn"){}
public virtual DbSet<ClassA> A { get; set; }
public virtual DbSet<ClassB> B { get; set; }
public virtual DbSet< … > … { get; set; }
public virtual DbSet<ClassX> X { get; set; }
}
- Entity Framework 開發步驟 -
康廷數位 www.kangting.tw 9
public class KTStoreContext : DbContext {
public KTStoreContext() :
base("name=KTStoreConn"){}
public virtual DbSet<ClassA> A { get; set; }
public virtual DbSet<ClassB> B { get; set; }
public virtual DbSet< … > … { get; set; }
public virtual DbSet<ClassX> X { get; set; }
}
建立模型檔案
A、B … X 儲存對應的 DbSet 型別資料集內容
- Entity Framework 開發步驟 -
Entity Framework 開發步驟
• 安裝 Entity Framework
• 建立模型檔案
• 設定連線字串
• 對應資料表
康廷數位 www.kangting.tw 10
康廷數位 www.kangting.tw 11
public class KTStoreContext : DbContext {
public KTStoreContext() :
base("name=KTStoreConn"){}
public virtual DbSet<ClassA> A { get; set; }
public virtual DbSet<ClassB> B { get; set; }
public virtual DbSet< … > … { get; set; }
public virtual DbSet<ClassX> X { get; set; }
}
設定連線字串 - Entity Framework 開發步驟 -
資料庫
Entity Framework 開發步驟
• 安裝 Entity Framework
• 建立模型檔案
• 設定連線字串
• 對應資料表
康廷數位 www.kangting.tw 12
康廷數位 www.kangting.tw 13
public class KTStoreContext : DbContext {
public KTStoreContext() :
base("name=KTStoreConn"){}
public virtual DbSet<ClassA> A { get; set; }
public virtual DbSet<ClassB> B { get; set; }
public virtual DbSet< … > … { get; set; }
public virtual DbSet<ClassX> X { get; set; }
}
對應資料表
Table A
Table B …
Table X
資料庫
- Entity Framework 開發步驟 -
康廷數位 www.kangting.tw 14
public class KTStoreContext : DbContext {
public KTStoreContext() :
base("name=KTStoreConn"){}
public virtual DbSet<ClassA> A { get; set; }
public virtual DbSet<ClassB> B { get; set; }
public virtual DbSet< … > … { get; set; }
public virtual DbSet<ClassX> X { get; set; }
}
對應資料表
資料庫
Table A ClassA
Table B ClassB
… Table X ClassX
- Entity Framework 開發步驟 -
DbContext
public class KTStoreContext : DbContext
康廷數位 www.kangting.tw 15
繼承 DbContext
DbContext
public class KTStoreContext : DbContext
康廷數位 www.kangting.tw 16
using (var context = new KTStoreContext()) { // 1. 連線設定 // 2. DbSet 資料模型管理 // 3. 資料作業-查詢、異動與更新 // 4. 底層資料庫更新 }
DbSet
public virtual DbSet<Product> Products {
get;
set;
}
public class Product
{
// 對應資料表欄位
public int Id { get; set; }
public string Name { get; set; }
…
}
康廷數位 www.kangting.tw 17
實體型別與資料表對應
康廷數位 www.kangting.tw 18
實體型別
public partial class Product
{
public int Id { get; set; }
public string Name { get; set; }
public int? Price { get; set; }
public string Category { get; set; }
}
康廷數位 www.kangting.tw 19
資料模型的初步存取
康廷數位 www.kangting.tw 20
using (var context = new KTStoreContext()) { // 引用 DbSet <Product>屬性 // 取得 Product 資料表中的資料筆數 int c = context.Products.Count() ; }
四種資料模型建立方式
康廷數位 www.kangting.tw 21
康廷數位 www.kangting.tw 22
EF Designer
Code First
全新資料庫
空的 EF Designer 模型
空的 Code First 模型
現存資料庫
來自資料庫的 EF Designer
來自資料庫的 Code First
四種資料模型建立方式
達成目標
瞭解何謂 Entity Framework (EF) 。
具備手動安裝 EF,建立資料模型能力。
清楚理解資料模型與資料庫的對應關係。
四種 實體資料模型功能。
康廷數位 www.kangting.tw 23
《Entity Framework 開發實務》
康廷數位 www.kangting.tw 24