怪物奇妙物语

宇宙无敌超级美少男的怪物奇妙物语

首页 新随笔 联系 管理

了解 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

posted on 2023-07-15 19:51  超级无敌美少男战士  阅读(35)  评论(0编辑  收藏  举报