ASP.NET Core如何使用Entity Framework進行資料訪問?
Entity Framework是一個ORM(物件關係對映)框架,它簡化了從關係資料庫建立、檢索、更新或刪除資料的過程。使用Entity Framework,您可以使用C#物件來抽象資料庫相關的程式碼,因此您很少需要處理原始SQL。
下圖說明了Entity Framework在分層架構中的位置。

Entity Framework Core (EF Core) 是Entity Framework 6的新版本。與.NET Core類似,EF Core是Entity Framework的輕量級、開源和跨平臺版本。它被開發用於.NET Core應用程式。
要將EF Core與SQL Server整合到您的ASP.NET Core應用程式中,您需要使用資料庫提供程式和EF Core工具的NuGet包。例如,如果我們想使用SQL Server作為資料庫,我們將安裝**Microsoft.EntityFrameworkCore.SqlServer** NuGet包。要安裝EF Core工具,請使用Microsoft.EntityFrameworkCore.Tools包。
使用Entity Framework的應用程式使用DbContext物件,這是Entity Framework的重要組成部分。它代表與資料庫的會話,用於建立、修改和將域實體的例項儲存到資料庫中。
DbContext類代表工作單元模式,其中單個物件跟蹤受更改影響的物件列表,並協調與資料庫的永續性。它執行以下職責:
管理與資料庫的連線
設定域模型及其之間的關係
執行CRUD(建立、讀取、更新、刪除)操作
跟蹤事務中的更改
快取資料以提高效能
您的應用程式的DbContext類是透過從Microsoft.EntityFrameworkCore.DbContext類派生來建立的。派生類指定資料模型中包含哪些實體。以下是一個示例說明。
using ContosoUniversity.Models;
using Microsoft.EntityFrameworkCore;
namespace ContosoUniversity.Data{
public class SchoolContext : DbContext{
public SchoolContext(DbContextOptions<SchoolContext> options) : base(options){
}
public DbSet<Course> Courses { get; set; }
public DbSet<Enrollment> Enrollments { get; set; }
public DbSet<Student> Students { get; set; }
}
}DbContext物件提供幫助程式方法來查詢、修改、刪除和儲存資料庫中的資料。
// Read data from the database
private static void Main(string[] args){
var context = new SchoolContext();
var studentsWithSameName = context.Students
.Where(s => s.FirstName == "David")
.ToList();
}
// Modify and save the data
private static void Main(string[] args){
var context = new SchoolContext();
var david = context.Students
.Where(s => s.FirstName == "David")
.First();
david.Grade = "A";
context.SaveChanges();
}
// Delete the data
private static void Main(string[] args){
var context = new SchoolContext();
var david = context.Students
.Where(s => s.FirstName == "David")
.First();
context.Students.Remove(david);
context.SaveChanges();
}
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP