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();
}

更新於:2021年6月22日

瀏覽量:335

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.