EF Core Sidekick 快速入门指南

    简介

    本教程将展示如何使用 EF Core Sidekick 从现有数据库中快速反向生成模型,并以最少的操作(少量点击)创建相关服务和 Web API,相较于传统的手动流程大大提升效率。

    目标读者

    • 已了解 C# 和 EF Core 基础知识,想要简化 Web API 创建流程的开发人员。
    • 希望避免编写重复的样板代码并加速数据库驱动 API 开发的开发人员。
    • 希望从手动编写大量代码中解放出来,专注于解决复杂问题的人。

    先决条件

    • 了解 C# 基础知识
    • 了解 EF Core 基础知识
    • 已安装 Visual Studio 2022
    • 已安装 EF Core Sidekick
    • 已安装 SQL Server
    • Microsoft 的 School 示例数据库

    使用 EF Core Sidekick 自动化构建 Web API

    借助 EF Core Sidekick,我们将能够更快、更轻松地完成构建 Web API。

    项目文件

    您可以从此处下载完整示例项目,以便与您的开发流程进行比较,或者在遇到问题时提供参考。

    架构图

    下图展示了 EF Core Sidekick 生成代码的运行时架构图。

    架构图

    安装插件

    首先,我们需要安装 EF Core Sidekick 插件。

    请前往此页面下载插件。下载完成后,请安装。

    安装完成后,请重新打开 SchoolManagement 项目。

    创建新项目

    在 Visual Studio 中创建一个 ASP.NET Core Web API 项目:

    image-20250526092647134

    将项目命名为 SchoolManagementSidekick,点击 下一步,并进行以下设置:

    image-20250526092942368

    自动生成实体

    开始使用 EF Core Sidekick 插件。我们首先从现有数据库创建模型。右键单击项目,然后选择 EF Core Sidekick > 从DB创建实体:

    image-20250526093134032

    在打开的窗口中,首先配置需要使用的数据库连接。我们创建一个新的数据库连接:

    image-20250526093236555

    根据数据库服务器填写连接信息,连接到 School 数据库:

    image-20250526094448027

    如果连接成功,我们将能够浏览数据库并选择要从中生成实体的对象:

    image-20250526094558287

    在本示例中,我们选择 Person 表,然后点击 下一步。

    image-20250526094650018

    此页面可以保持默认设置。点击 完成。

    image-20250526094847693

    EF Core Sidekick 会添加以下文件到项目:

    • 模型(Contract > Entities > Person.cs)
    • DataContext(Dal > DataContext.cs)
    • 使用 EF Core 配置 Person 实体的类(Dal > Configurations > PersonEntityTypeConfiguration.cs)

    image-20250526095003116

    在实体生成结果页面会提示我们对代码进行一些小的修改。

    在 Program.cs 文件中的 builder.Build() 语句前添加以下代码块来注入数据库上下文 DataContext:

    加载连接字符串

    将数据库连接字符串添加到 appsettings.json 文件中:

    保存连接字符串

    注意:不建议将连接字符串或其他敏感信息直接写入代码,建议使用用户机密库。

    自动生成服务和API

    要生成响应传入 HTTP 请求的服务和控制器,请右键单击刚刚创建的 Person 实体文件,然后选择 EF Core Sidekick > 生成服务和API。

    image-20250526102445031

    在 生成服务和API 窗口中,您可以配置脚手架功能。

    image-20250526102702958

    1. 选择要生成的端点。例如,如只需要只读端点,可以取消选择 Update、Delete 等端点。
    2. 服务设置。您可以配置每个端点的设置;对于返回对象的每个属性,您可以指定其返回值的来源(表的字段、计算表达式、或静态值)。如果该值是已导入实体的外键,并且您希望它返回嵌套对象而不是外键,则可以在 级联查询 中进行设置。

    在 API 设置 选项卡中:

    image-20250526102921155

    您可以配置与端点相关的设置,例如名称、HTTP 方法、路由、或授权策略等。

    在本示例中,将仅选择只读端点,然后点击 下一步。

    image-20250526103018737

    在概览页面点击 完成。

    image-20250526103053865

    注入服务

    按照生成结果页面的提示,在 Program.cs 文件中的 builder.Build() 之前添加以下代码:

    注入控制器和存储库

    运行生成的Web API

    现在一切就绪,我们可以运行 Web API 了。我们将看到以下 Swagger 页面:

    包含新端点的 Swagger 页面

    如果我们选择 /api/Person/GetList 端点,点击 试用 按钮,然后点击 执行 按钮,我们将看到 API 查询的结果。至此,我们成功搭建了一个完整可运行的 ASP.NET Core Web API。

    总结与后续

    阅读完以上内容,希望您能够了解如何使用 EF Core Sidekick 快速开发 Web API。数据库的表越多、越复杂,使用 EF Core Sidekick 节省的时间就越显著。而且,这款工具不会限制您的操作,因为您从表中生成 C# 类后,您可以进行任何您认为合适的修改;或者,如果您发现自己需要不断重新生成模型,您可以将自定义代码添加到生成设置中,以便每次运行该过程时自动注入这些代码。

    更多学习资源

    EF Core Sidekick 主页

    EF Core Sidekick 文档

    返回顶部