前言
Entity Framework Core (EF Core)是微軟推薦的基於.NET Core framework的應用程序數據訪問技術。它是輕量級,可擴展並且支持跨平台開發。EF Core是一種對象關系映射器(ORM)。通過應用程序實體對象和關系數據庫中的數據的映射,使得開發人員能夠以面向對象的方式處理數據。
為什么使用ORM
大多數開發框架都包含庫,這些庫允許通過類似記錄集的數據結構訪問關系數據庫中的數據。下面的代碼示例演示了一個典型的場景,即數據從數據庫中檢索並存儲在ADO.NET DataTable中,以便程序的代碼可以訪問該數據:
using (var conn = new SqlConnection(connectionString)) using (var cmd = new SqlCommand("select * from Products", conn)) { var dt = new DataTable(); using (var da = new SqlDataAdapter(cmd)) { da.Fill(dt); } }
DataTable中的數據可以通過數字或字符串索引器訪問將對象轉換為正確的類型:
foreach(DataRow row in dt.Rows) { int productId = Convert.ToInt32(row[0]); string productName = row["ProductName"].ToString(); }
這種后綁定或“弱類型”的數據訪問方法很容易出錯。經常會出現錯誤的輸入列的名稱,或者發現列名在數據庫中已經被更改了,或者更改SQL語句中指定字段的順序,而沒有對應用程序代碼進行相應的更改等問題,最后數據類型轉換失敗,代碼仍然可以編譯,但在運行時會出錯。因此,專業開發人員更喜歡以強類型的方式處理數據。
強類型:
當您對數據采用強類型方法時,您將使用預定義類的屬性,這些類以面向對象的方式形成模型(Model會在后續章節中專門做說明):
public class Product { public int ProductId { get; set; } public string ProductName { get; set; } }
Product myProduct = new Product(); int productId = myProduct.ProductId; string productName = myProduct.ProductName;
要從數據庫中檢索數據並將其映射到域對象的實例,還需要做一些工作。一種選擇是編寫自己的代碼來管理它,然而隨着模型的增長,代碼量會越來越大,意味着我們將需要越來越多的開發時間去維護。這將增加完成項目的總時間。
ORM是預先編寫的代碼庫,功能齊全的ORM可以做很多事情:
- 將Model映射到數據庫對象
- 創建數據庫並且維護它的模式保持和Model一致
- 生成SQL並執行
- 管理事務
- 跟蹤已經檢索的對象
如何獲取Entity Framework Core
EF CORE是 Nuget 包,可以根據項目類型和可用的工具以多種方式添加到項目中:下面介紹3中方式Visual Studio包管理器,包管理器控制台(Package Manager Console),命令行工具(Command Line Tools)
Visual Studio包管理器:
Visual Studio的用戶可以通過包管理工具選項之一安裝 EF CORE,而不用管其項目類型(.NET Core or the full .NET Framework),NuGet包管理器界面或包管理器控制台。
NuGet包管理器(Nuget Package Manager)
1.打開Visual Studio>> Tools >> NuGet Package Manager >> Manage NuGet Packages For Solution
2.選中"瀏覽(Browse)",並在搜索框中鍵入“entityframeworkcore”。
3.選中要安裝的程序,這里選擇SQL SERVER
4.選擇你想要安裝EF CORE的項目,然后點擊安裝(Install)
5.查看即將對項目進行的更改(除非您之前已經勾選了框以防止出現此對話框)
6.最后,接受與將要安裝的包相關聯的各種許可證的條款
包管理器控制台(Package Manager Console)
1.打開Visual Studio>> Tools >> NuGet Package Manager >> Package Manager Console
2.確保在“默認項目(Default project)”下拉菜單中選擇正確的項目,並鍵入install-package microsoft.entityframeworkcore.sqlserver來安裝SQL服務器提供程序,點擊回車鍵安裝即可
命令行工具(Command Line Tools)
首先創建一個項目,命令行到 包含.csproj (或者 project.json)的文件夾之后,執行命令dotnet add package Microsoft.EntityFrameworkCore.SqlServer也可安裝EF CORE,假設我新建的項目在E盤的文件夾下:
如果你想用EF Core工具去遷移或者搭建,還需要執行以下命令
dotnet add package Microsoft.EntityFrameworkCore.Tools --version 1.1.0-msbuild3-final
原文鏈接:https://www.learnentityframeworkcore.com/efcore/how-to-get