前言
Entity Framework Core(EF Core)是一個.NET ORM(對象關係映射)框架,這個框架可以幫助我們更簡單地進行數據庫操作。
後面的案例會使用Entity Framework Core進行資料庫操作,也包含如何建立和配置它。
首先當然要先說明一下ORM框架,Day 16提到了關於SQL資料庫基礎使用,在.NET框架裡面也會使用ORM技術來去跟SQL Server對應查找等等。
ORM 是一個幫助使用者更簡便、安全的去從資料庫讀取資料。
並讓開發者可以像操作物件那樣的存取資料庫中的數據,而且使用 ORM 可以簡化資料庫操作的程式碼,讓開發人員專注於應用程式的邏輯,如果未來需要更換資料庫像是剛換成MY SQL 之類的,使用 ORM 可以輕鬆移植程式碼,而不需要大量修改。
有好處就會有一些缺點,像是由於 ORM 在背後進行了大量的轉換與映射,因此可能會比直接使用原生 SQL 語句慢一些等等的問題。
ORM 的選擇取決於應用程式的特定需求和優先順序。如果需要簡化程式碼,提高生產力和可維護性,那麼 ORM 是一個不錯的選擇。
但是,如果對資料庫的效能和細節有特殊的需求,那麼可能需要使用原生的 SQL 語句。
首先先來解釋關於我們這次要使用的,Entity Framework Core(EF Core)是一個用於.NET的對象關係映射(ORM)框架,允許我們在應用程序中使用.NET對象來操作資料庫。
它提供了一種將資料庫表映射到.NET對象的方法,並且可以通過.NET對象來執行查詢、添加、更新和刪除操作。EF Core支持多種資料庫提供程序,包括SQL Server、MySQL、SQLite等,因此你可以使用你熟悉的資料庫來開發應用程序。
說明完以後就要開始實體操作啦~
先創建新專案,我使用的是ASPNET Core Web(Model-View-Controller),架構一樣是選.Net 6的。
首先,我們需要在我們的項目中安裝Entity Framework Core Tool。這可以通過NuGet套件管理器來完成。打開你的項目,然後在解決方案管理器中右鍵單擊項目,選擇“管理NuGet套件”:
在NuGet套件管理器中,搜索“Microsoft.EntityFrameworkCore”,然後安裝它。同樣地,搜索和安裝你選擇的數據庫提供程序(例如,如果你使用SQL Server,則搜索“Microsoft.EntityFrameworkCore.SqlServer”並安裝它):
開始操作資料庫之前,我們需要定義資料模型。資料模型是一個C#類別,它將映射到資料庫中的表。
假設我們正在開發一個部落格應用程序,先創建一個“文章”類別:
public class Article
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
}
在Models資料夾右鍵 ⇒ 加入 ⇒ 類別
新增類別,輸入類別名稱,這裡是使用Article當類別名稱。
再來類別內容,可以看到剛剛命名的類別在public class後面出現,類別裡面放這些我們會用到的內容,像是Id第幾筆,Title題目跟Content內容。
在這個示例中,我們創建了一個名為“Article”的類,它有三個屬性:Id、Title和Content。這些屬性將分別映射到數據庫表中的列。
針對這個數據模型的部分可以特別來說明一下
在物件導向程式設計中,Model(模型)是代表軟體中實體、概念或數據的抽象描述。模型用於描述應用程式中的結構、行為和關係,有助於理解和設計複雜系統。在軟體設計中,模型通常包括以下主要組件:
1. 類別(Class)
類別是模型中的基本組件,它表示現實世界中的實體或概念。一個類別定義了一組具有相同屬性和行為的對象。
例如,如果我們正在設計一個學生管理系統,我們可能會創建一個名為"Student"的類別,該類別包含學生的姓名、學號和成績等屬性,以及計算平均成績的方法。
2. 屬性(Attribute)
屬性是類別中的變數,用於描述類別的狀態。每個類別可以有多個屬性,這些屬性代表了該類別的特性。
例如,學生類別的屬性可以包括姓名、學號和成績。
3. 方法(Method)
方法是類別中的函數,用於表示類別的行為。方法定義了可以對該類別執行的操作。
學生類別的方法可以包括計算平均成績、修改學生信息等操作。
4. 關係(Relationship)
在模型中,類別之間可以存在不同類型的關係,這些關係描述了類別之間的相互作用和依賴關係。
例如,如果我們有一個"Teacher"類別,它可以繼承自"Person"類別,表示老師是人的一種特殊情況。
模型是設計複雜軟體系統的重要工具,它有助於開發人員理解系統的結構和功能。透過適當的模型,可以更好地組織程式碼、提高程式碼的可維護性,並確保軟體滿足需求。
第17天挑戰完成!!!!