什么是 Entity Framework Core? - Training - Microsoft Learn

发布时间 2023-07-15 20:04:47作者: 虎虎生威啊

了解 Entity Framework (EF) Core 的定义,以及如何将其与 API 一起使用。

大多数重要的 Web 应用程序都需要对数据可靠地运行操作,如创建、读取、更新和删除 (CRUD)。 它们还需要在应用程序重启之间保留这些操作所做的任何更改。 尽管有各种选项可用于在 .NET 应用程序中永久保留数据,但
Entity Framework (EF) Core
是一个用户友好型解决方案,非常适合许多 .NET 应用程序。

了解 EF Core

EF Core 是 .NET 应用程序的轻型、可扩展、开源和跨平台的数据访问技术。

EF Core 可以用作对象关系映射器:

  • 使 .NET 开发人员能够使用 .NET 对象处理数据库。
  • 无需再像通常那样编写大部分数据访问代码。

EF Core 支持大量常见数据库,包括 SQLite、MySQL、PostgreSQL、Oracle 和 Microsoft SQL Server。

模型

使用 EF Core 时,数据访问是通过使用模型来执行的。
模型由实体类和表示数据库会话的上下文对象构成。
上下文对象允许查询并保存数据。

实体类

在此场景中,你将实现一个比萨饼存储管理 API,因此你将使用 Pizza 实体类。 存储中的比萨饼具有名称和说明。 它们还需要 ID,以便 API 和数据库识别它们。 你将在应用程序中使用的 Pizza 实体类可识别比萨饼:

namespace PizzaStore.Models 
{
  public class Pizza
  {
      public int Id { get; set; }
      public string? Name { get; set; }
      public string? Description { get; set; }
  }
}


上下文类

此应用程序只有一个实体类,但大多数应用程序将有多个实体类。
上下文类负责查询数据并将其保存到实体类,以及用于创建和管理数据库连接。

使用 EF Core 执行 CRUD 操作

配置 EF Core 后,可以使用它对实体类执行 CRUD 操作。 然后,你可以针对 C# 类进行开发,并将数据库操作委托给上下文类。 数据库提供程序反过来将其转换为特定于数据库的查询语言。 例如,关系数据库的 SQL。 即使上下文中已存在结果中返回的实体,也始终对数据库执行查询。

查询数据

上下文对象公开每个实体类型的集合类。 在前面的示例中,上下文类将 Pizza 对象的集合公开为 Pizzas。 假设有一个上下文类实例,则可以在数据库中查询所有比萨饼:

var pizzas = await db.Pizzas.ToListAsync();

插入数据

可以使用相同的上下文对象插入新比萨饼:

await db.pizzas.AddAsync(
    new Pizza { ID = 1, Name = "Pepperoni", Description = "The classic pepperoni pizza" });

删除数据

删除操作很简单。 它们只需要删除项的 ID:

var pizza = await db.pizzas.FindAsync(id);
if (pizza is null)
{
    
}
db.pizzas.Remove(pizza);

更新数据

同样,你可以更新现有比萨饼:

int id = 1;
var updatepizza = new Pizza { Name = "Pineapple", Description = "Ummmm?" }
var pizza = await db.pizzas.FindAsync(id);
if (pizza is null)
{
    
}
pizza.Item = updatepizza.Item;
pizza.IsComplete = updatepizza.IsComplete;
await db.SaveChangesAsync();


本文由 简悦 SimpRead 转码, 原文地址 learn.microsoft.com