了解 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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战