Entity framework 入門第一課

Post on 21-Mar-2017

1.165 views 1 download

Transcript of Entity framework 入門第一課

課程《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