如何实现 .NET Core MVC 与 MySQL 的增删改查

在现代应用程序开发中,熟悉 MVC 框架和数据库操作是每位开发者必备的技能。本文将为刚入行的小白详细介绍如何在 .NET Core MVC 中实现与 MySQL 进行数据的增删改查(CRUD)。以下是整个实现过程的步骤总结。

整体流程

步骤 描述
1 创建 .NET Core MVC 项目
2 安装 Entity Framework Core 和 MySQL 提供程序
3 配置数据库连接
4 创建模型
5 创建数据库上下文
6 创建控制器及视图
7 实现CRUD方法
8 运行并测试应用

步骤详解

1. 创建 .NET Core MVC 项目

首先,在命令行中输入以下命令来创建一个新的 .NET Core MVC 项目:

dotnet new mvc -n MyMvcApp

这条命令会创建一个名为 MyMvcApp 的新 MVC 项目。

2. 安装 Entity Framework Core 和 MySQL 提供程序

在项目目录下,使用 NuGet 安装 Entity Framework Core 和 MySQL 提供程序:

dotnet add package Pomelo.EntityFrameworkCore.MySql

Pomelo 是开源的 MySQL 数据库提供程序,可以让 EF Core 支持 MySQL。

3. 配置数据库连接

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

{
  "ConnectionStrings": {
    "DefaultConnection": "server=localhost;database=mydatabase;user=myuser;password=mypassword;"
  }
}

这里需要根据你的数据库信息替换 mydatabasemyusermypassword

4. 创建模型

在项目中创建一个新的模型类,例如 Product.cs

public class Product
{
    public int Id { get; set; }       // 产品ID
    public string Name { get; set; }  // 产品名称
    public decimal Price { get; set; } // 产品价格
}

这是一个简单的产品类,包含 ID、名称和价格属性。

5. 创建数据库上下文

创建 ApplicationDbContext.cs 类,并继承自 DbContext

using Microsoft.EntityFrameworkCore;

public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { }

    public DbSet<Product> Products { get; set; } // 数据集,代表产品表
}

这个上下文类将用于与数据库进行交互。

6. 修改 Startup 类

Startup.cs 中配置依赖注入:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ApplicationDbContext>(options => 
        options.UseMySql(Configuration.GetConnectionString("DefaultConnection"), 
        ServerVersion.AutoDetect(Configuration.GetConnectionString("DefaultConnection"))));
    services.AddControllersWithViews();
}

这段代码将 ApplicationDbContext 添加到 DI 容器中。

7. 创建控制器及视图

使用以下命令创建一个控制器:

dotnet aspnet-codegenerator controller -name ProductController -m Product -dc ApplicationDbContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries

这将为产品模型和数据库上下文生成一个控制器。

后续需要在控制器中添加 CRUD 方法。例如,添加一个创建新产品的方法:

public async Task<IActionResult> Create(Product product)
{
    if (ModelState.IsValid)
    {
        _context.Add(product); // 添加新的产品到上下文
        await _context.SaveChangesAsync(); // 保存更改到数据库
        return RedirectToAction(nameof(Index)); // 重定向到索引页面
    }
    return View(product);
}

该方法将执行创建操作。

8. 运行并测试应用

使用以下命令启动应用程序:

dotnet run

打开浏览器访问 http://localhost:5000,并测试增删改查功能。

结尾

通过上述步骤和代码示例,你已经可以在 .NET Core MVC 中完成与 MySQL 数据库的基本 CRUD 操作。如果需要深入了解,可以继续学习 Entity Framework Core 的更多特性,以及如何做好数据库的设计和优化。希望这篇文章对你的学习有所帮助,祝你在开发的道路上不断进步!