entity framework 入門第一課

24
課程《Entity Framework 開發實務》 康廷數位 www.kangting.tw 1 入門第一課

Upload: ktsean

Post on 21-Mar-2017

1.164 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Entity framework 入門第一課

課程《Entity Framework 開發實務》

康廷數位 www.kangting.tw 1

入門第一課

Page 2: Entity framework 入門第一課

課程需具備基礎能力

入門 C# 物件導向設計

具備關聯式資料庫基礎知識

康廷數位 www.kangting.tw 2

Page 3: Entity framework 入門第一課

從 ADO.NET 到 Entity Framework

康廷數位 www.kangting.tw 3

Page 4: Entity framework 入門第一課

Entity Framework 開發步驟

• 安裝 Entity Framework

• 建立模型檔案

• 設定連線字串

• 對應資料表

康廷數位 www.kangting.tw 4

Page 5: Entity framework 入門第一課

Entity Framework 開發步驟

康廷數位 www.kangting.tw 5

Entity Framework 開發步驟

Page 6: Entity framework 入門第一課

Entity Framework 開發步驟

• 安裝 Entity Framework

• 建立模型檔案

• 設定連線字串

• 對應資料表

康廷數位 www.kangting.tw 6

Page 7: Entity framework 入門第一課

康廷數位 www.kangting.tw 7

DbContext

DbSet<ClassA>

DbSet<ClassB>

DbSet<ClassX>

DbSet …

建立模型檔案 - Entity Framework 開發步驟 -

Page 8: 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 開發步驟 -

Page 9: 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 開發步驟 -

Page 10: Entity framework 入門第一課

Entity Framework 開發步驟

• 安裝 Entity Framework

• 建立模型檔案

• 設定連線字串

• 對應資料表

康廷數位 www.kangting.tw 10

Page 11: Entity framework 入門第一課

康廷數位 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 開發步驟 -

資料庫

Page 12: Entity framework 入門第一課

Entity Framework 開發步驟

• 安裝 Entity Framework

• 建立模型檔案

• 設定連線字串

• 對應資料表

康廷數位 www.kangting.tw 12

Page 13: Entity framework 入門第一課

康廷數位 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 開發步驟 -

Page 14: 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 開發步驟 -

Page 15: Entity framework 入門第一課

DbContext

public class KTStoreContext : DbContext

康廷數位 www.kangting.tw 15

繼承 DbContext

Page 16: Entity framework 入門第一課

DbContext

public class KTStoreContext : DbContext

康廷數位 www.kangting.tw 16

using (var context = new KTStoreContext()) { // 1. 連線設定 // 2. DbSet 資料模型管理 // 3. 資料作業-查詢、異動與更新 // 4. 底層資料庫更新 }

Page 17: Entity framework 入門第一課

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

Page 18: Entity framework 入門第一課

實體型別與資料表對應

康廷數位 www.kangting.tw 18

Page 19: Entity framework 入門第一課

實體型別

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

Page 20: Entity framework 入門第一課

資料模型的初步存取

康廷數位 www.kangting.tw 20

using (var context = new KTStoreContext()) { // 引用 DbSet <Product>屬性 // 取得 Product 資料表中的資料筆數 int c = context.Products.Count() ; }

Page 21: Entity framework 入門第一課

四種資料模型建立方式

康廷數位 www.kangting.tw 21

Page 22: Entity framework 入門第一課

康廷數位 www.kangting.tw 22

EF Designer

Code First

全新資料庫

空的 EF Designer 模型

空的 Code First 模型

現存資料庫

來自資料庫的 EF Designer

來自資料庫的 Code First

四種資料模型建立方式

Page 23: Entity framework 入門第一課

達成目標

瞭解何謂 Entity Framework (EF) 。

具備手動安裝 EF,建立資料模型能力。

清楚理解資料模型與資料庫的對應關係。

四種 實體資料模型功能。

康廷數位 www.kangting.tw 23

Page 24: Entity framework 入門第一課

《Entity Framework 開發實務》

康廷數位 www.kangting.tw 24