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