怪物奇妙物语

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

首页 新随笔 联系 管理
  819 随笔 :: 0 文章 :: 2 评论 :: 16万 阅读

了解 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   超级无敌美少男战士  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示