欢迎访问宙启技术站
智能推送

.NET5控制台程序如何使用EF连接MYSQL数据库

发布时间:2023-05-16 12:07:50

在 .NET5 控制台程序中,使用 Entity Framework(EF) 连接 MYSQL 数据库有多种不同的方法和方案。本文将介绍其中的一种方法,并在步骤中提供详细的说明。

步骤一:安装MySQL数据提供程序

在使用 EF 连接 MYSQL 数据库之前,必须先安装 MySQL 数据提供程序。在 .NET5 中,MYSQL 数据提供程序可以通过 NuGet 包管理器来安装。打开 Visual Studio 的 NuGet 包管理器,或者使用 .NET CLI 来安装 MySql.Data.EntityFrameworkCore:

dotnet add package MySql.Data.EntityFrameworkCore

步骤二:创建 MYSQL 数据库及表

在创建 EF 数据上下文前,必须先在 MYSQL 数据库中创建一个数据库和一些表。在 MySQL Workbench 中创建数据库:

CREATE DATABASE example_db;

在创建好数据库后,根据实际需要创建表。

步骤三:创建 EF 数据上下文类

创建一个 EF 数据上下文类,以便在 .NET5 控制台程序中使用 EF 连接 MYSQL 数据库。在创建 EF 数据上下文类时必须指定所连接的数据库类型。

using Microsoft.EntityFrameworkCore;

namespace ConsoleApp
{
    public class ExampleContext : DbContext
    {
        public DbSet<User> Users { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseMySQL("server=localhost;database=example_db;user=root;password=mypassword");
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<User>().HasKey(u => u.Id);
            modelBuilder.Entity<User>().Property(u => u.Name).IsRequired();
            modelBuilder.Entity<User>().Property(u => u.Email).IsRequired();
        }
    }

    public class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Email { get; set; }
    }
}

以上代码中,ExampleContext 类是一个继承自 DbContext 类的 EF 数据上下文类。DbSet<User> 属性定义了一个名为 Users 的表,该表将在程序中映射到 MYSQL 数据库的 Users 表。

OnConfiguring 方法用来配置 EF 连接 MYSQL 数据库的选项。在此方法中,我们使用了 UseMySQL 方法来指定所连接的 MYSQL 数据库。

OnModelCreating 方法用来定义 MYSQL 表格的主键、字段等信息。

步骤四:在控制台程序中使用 EF 连接 MYSQL 数据库

创建完 EF 数据上下文类后,就可以在 .NET5 控制台程序中使用 EF 连接 MYSQL 数据库了。

using System.Linq;

namespace ConsoleApp
{
  class Program
  {
    static void Main(string[] args)
    {
      using (var context = new ExampleContext())
      {
        // 添加一条记录
        var user = new User { Name = "example", Email = "example@gmail.com" };
        context.Users.Add(user);
        context.SaveChanges();

        // 查询记录
        var users = from u in context.Users
                    select u;
        foreach (var u in users)
        {
          Console.WriteLine($"Id={u.Id}, Name={u.Name}, Email={u.Email}");
        }
      }
    }
  }
}

在以上程序中,我们首先创建了一个 EF 数据上下文类对象 context。接着,我们创建了一条 User 记录并将其添加到 Users 表中。

之后,我们使用 LINQ 查询语句从 Users 表中查询其所有记录,并循环输出每条记录的 IdNameEmail 等信息。

总结:

本文介绍了使用 Entity Framework(EF) 连接 MYSQL 数据库的一种方法,并提供了详细的步骤和示例代码。读者可以根据自己实际的情况和需求,选择适合的方法来连接 MYSQL 数据库。需要注意的是,无论使用哪种方法,都必须先安装 MYSQL 数据提供程序,否则无法使用 Entity Framework 连接 MYSQL 数据库。