SlideShare a Scribd company logo
1 of 24
Download to read offline
課程《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

More Related Content

Viewers also liked

2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練22015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2Duran Hsieh
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練12015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1Duran Hsieh
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練42015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4Duran Hsieh
 
90 Day Marketing Plan Coaching Overview
90 Day Marketing Plan Coaching Overview90 Day Marketing Plan Coaching Overview
90 Day Marketing Plan Coaching OverviewFraser Hay
 
P1112016 Charla sobre ser innovador
P1112016 Charla sobre ser innovadorP1112016 Charla sobre ser innovador
P1112016 Charla sobre ser innovadorVENTURA Contenidos
 
Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Mario Guedes
 
Asp.net mvc 概觀介紹
Asp.net mvc 概觀介紹Asp.net mvc 概觀介紹
Asp.net mvc 概觀介紹Alan Tsai
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練62016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6Duran Hsieh
 

Viewers also liked (12)

Linq初階
Linq初階Linq初階
Linq初階
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練22015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練12015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練42015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
 
90 Day Marketing Plan Coaching Overview
90 Day Marketing Plan Coaching Overview90 Day Marketing Plan Coaching Overview
90 Day Marketing Plan Coaching Overview
 
P1112016 Charla sobre ser innovador
P1112016 Charla sobre ser innovadorP1112016 Charla sobre ser innovador
P1112016 Charla sobre ser innovador
 
Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática
 
Asp.net mvc 概觀介紹
Asp.net mvc 概觀介紹Asp.net mvc 概觀介紹
Asp.net mvc 概觀介紹
 
เทคนิคการจำ Division พืช
เทคนิคการจำ Division พืชเทคนิคการจำ Division พืช
เทคนิคการจำ Division พืช
 
Maykevin peñuela ensayo
Maykevin peñuela ensayoMaykevin peñuela ensayo
Maykevin peñuela ensayo
 
เซลล์พืช 1
เซลล์พืช 1 เซลล์พืช 1
เซลล์พืช 1
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練62016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
 

Similar to Entity framework 入門第一課

ASP.NET Core 2.1設計新思維與新發展
ASP.NET  Core 2.1設計新思維與新發展ASP.NET  Core 2.1設計新思維與新發展
ASP.NET Core 2.1設計新思維與新發展江華 奚
 
Huangjing renren
Huangjing renrenHuangjing renren
Huangjing renrend0nn9n
 
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式Shengyou Fan
 
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境Will Huang
 
Flex 4.5 action custom component development
Flex 4.5 action custom component developmentFlex 4.5 action custom component development
Flex 4.5 action custom component developmentjexchan
 
建站大业,实战ASP.NET 4
建站大业,实战ASP.NET 4建站大业,实战ASP.NET 4
建站大业,实战ASP.NET 4Cat Chen
 
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit TestingASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing江華 奚
 
Servlet & JSP 教學手冊第二版 - 課後練習解答
Servlet & JSP 教學手冊第二版 - 課後練習解答Servlet & JSP 教學手冊第二版 - 課後練習解答
Servlet & JSP 教學手冊第二版 - 課後練習解答Justin Lin
 
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现hua qiu
 
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想Alan Tsai
 
twMVC#41 The journey of source generator
twMVC#41 The journey of source generatortwMVC#41 The journey of source generator
twMVC#41 The journey of source generatortwMVC
 
OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发leneli
 
Supersonic Subatomic Quarkus accelerate cloud native development
Supersonic Subatomic Quarkus accelerate cloud native developmentSupersonic Subatomic Quarkus accelerate cloud native development
Supersonic Subatomic Quarkus accelerate cloud native developmentRyan ZhangCheng
 
炎炎夏日學 Android 課程 - Part1: Kotlin 語法介紹
炎炎夏日學 Android 課程 -  Part1: Kotlin 語法介紹炎炎夏日學 Android 課程 -  Part1: Kotlin 語法介紹
炎炎夏日學 Android 課程 - Part1: Kotlin 語法介紹Johnny Sung
 
IoTDB Quick Start
IoTDB Quick StartIoTDB Quick Start
IoTDB Quick StartJialinQiao
 
深入浅出Netty l.t
深入浅出Netty   l.t深入浅出Netty   l.t
深入浅出Netty l.toleone
 
Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文Guo Albert
 
Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异cleverpig
 
Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门Xiujun Ma
 
Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTerracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTarget Source
 

Similar to Entity framework 入門第一課 (20)

ASP.NET Core 2.1設計新思維與新發展
ASP.NET  Core 2.1設計新思維與新發展ASP.NET  Core 2.1設計新思維與新發展
ASP.NET Core 2.1設計新思維與新發展
 
Huangjing renren
Huangjing renrenHuangjing renren
Huangjing renren
 
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
 
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
 
Flex 4.5 action custom component development
Flex 4.5 action custom component developmentFlex 4.5 action custom component development
Flex 4.5 action custom component development
 
建站大业,实战ASP.NET 4
建站大业,实战ASP.NET 4建站大业,实战ASP.NET 4
建站大业,实战ASP.NET 4
 
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit TestingASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
ASP.NET Core MVC 2.2從開發到測試 - Development & Unit Testing
 
Servlet & JSP 教學手冊第二版 - 課後練習解答
Servlet & JSP 教學手冊第二版 - 課後練習解答Servlet & JSP 教學手冊第二版 - 課後練習解答
Servlet & JSP 教學手冊第二版 - 課後練習解答
 
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现
 
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
 
twMVC#41 The journey of source generator
twMVC#41 The journey of source generatortwMVC#41 The journey of source generator
twMVC#41 The journey of source generator
 
OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发
 
Supersonic Subatomic Quarkus accelerate cloud native development
Supersonic Subatomic Quarkus accelerate cloud native developmentSupersonic Subatomic Quarkus accelerate cloud native development
Supersonic Subatomic Quarkus accelerate cloud native development
 
炎炎夏日學 Android 課程 - Part1: Kotlin 語法介紹
炎炎夏日學 Android 課程 -  Part1: Kotlin 語法介紹炎炎夏日學 Android 課程 -  Part1: Kotlin 語法介紹
炎炎夏日學 Android 課程 - Part1: Kotlin 語法介紹
 
IoTDB Quick Start
IoTDB Quick StartIoTDB Quick Start
IoTDB Quick Start
 
深入浅出Netty l.t
深入浅出Netty   l.t深入浅出Netty   l.t
深入浅出Netty l.t
 
Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文
 
Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异Web前端标准在各浏览器中的实现差异
Web前端标准在各浏览器中的实现差异
 
Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门
 
Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering ArchitectureTerracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering Architecture
 

Entity framework 入門第一課