.NET5控制台程序使用EF连接MYSQL数据库的方法

下面是详细讲解“.NET5控制台程序使用EF连接MYSQL数据库的方法”的完整攻略:

准备工作

  1. 确认已经安装.NET5、EF(Core)等必要的环境和工具。
  2. 安装Pomelo.EntityFrameworkCore.MySql(用于支持EF连接MYSQL数据库的驱动程序)。

创建控制台程序

使用dotnet命令行工具创建一个新的.NET5控制台程序:

dotnet new console -n MyConsoleApp

添加依赖库

修改MyConsoleApp.csproj文件,添加Pomelo.EntityFrameworkCore.MySqlMicrosoft.EntityFrameworkCore.Design依赖库:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="5.0.0-alpha.2" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.0" />
  </ItemGroup>
</Project>

创建模型

使用EF(Core)的Code First方式,创建模型。例如,我们创建一个简单的Book模型:

public class Book
{
    public int Id { get; set; }
    public string Title { get; set; }
    public string Author { get; set; }
    public decimal Price { get; set; }
}

配置数据库连接

Program.cs文件的Main方法中添加如下代码:

using (var context = new MyContext())
{
    context.Database.EnsureDeleted();   // 删除现有数据库(仅限测试用)
    context.Database.EnsureCreated();   // 创建新的数据库

    // 添加测试数据
    context.Books.AddRange(new List<Book>
    {
        new Book{ Title="Book1", Author="Author1", Price=10.0m},
        new Book{ Title="Book2", Author="Author2", Price=20.0m},
        new Book{ Title="Book3", Author="Author3", Price=30.0m},
    });
    context.SaveChanges();

    // 查询数据
    var books = context.Books.ToList();
    foreach (var book in books)
    {
        Console.WriteLine($"{book.Id} {book.Title} {book.Author} {book.Price}");
    }
}

public class MyContext : DbContext
{
    public DbSet<Book> Books { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseMySql("Server=localhost;Database=bookstore;User=root;Password=123456");
    }
}

OnConfiguring方法中,使用UseMySql方法指定连接字符串,其中Server是MYSQL数据库的地址,Database是数据库名称,UserPassword是连接数据库的用户名和密码。

运行代码

对程序进行测试,可以在终端中进入到该控制台程序的根目录,执行命令dotnet run即可运行代码。运行代码后,程序会使用EF Core连接到MYSQL数据库,创建一个名为bookstore的数据库,并添加模型数据到该数据库中,最后查询该数据库中的所有模型,将查询结果输出到控制台上。

示例说明:

  1. 添加新的书籍模型数据:
using (var context = new MyContext())
{
    var newBook = new Book { Title = "Book4", Author = "Author4", Price = 40.0m };
    context.Books.Add(newBook);
    context.SaveChanges();
}
  1. 修改模型数据:
using (var context = new MyContext())
{
    var book = context.Books.FirstOrDefault(b => b.Title == "Book3");
    if (book != null)
    {
        book.Price = 35.0m;
        context.SaveChanges();
    }
}

以上就是使用EF在.NET5控制台程序中连接MYSQL数据库的详细攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:.NET5控制台程序使用EF连接MYSQL数据库的方法 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • Unity实现物体弧线运动到规定的坐标

    Unity实现物体弧线运动到规定的坐标的完整攻略需要涉及以下几个步骤: 1. 生成弧线路径 首先需要生成一条弧线路径,用于指导物体运动。可以使用Unity中的Path Creator插件来生成弧线路径。具体操作如下: 在Unity Asset Store中搜索Path Creator插件,下载并导入到项目中。 在场景中创建空对象,然后添加Path Creat…

    C# 2023年6月3日
    00
  • .NET几种微服务框架,你用过吗?

    最近有群友问,.NET有哪些微服务框架?.NET的微服务框架还真不多,一般企业都会自己搭建微服务框架,或者基于其它框架搭建微服务(比如abp)。本文将介绍几种微服务框架,供大家学习参考。 一、Service Fabric 简介: Service Fabric 是一个微服务框架,它由微软开发并托管在 Azure 上。它提供了一种分布式系统的方式,允许开发人员在…

    C# 2023年5月6日
    00
  • C#日历样式的下拉式计算器实例讲解

    下面我来详细讲解一下“C#日历样式的下拉式计算器实例讲解”的完整攻略。 一、准备工作 在开始之前,我们需要完成以下准备工作: 安装好Visual Studio开发环境 创建一个Windows Froms应用程序项目 在表单中添加控件:日历控件、文本框控件、下拉框控件、按钮控件等 二、编写代码 1. 日历控件的使用 首先,我们需要使用日历控件来获取日期。在窗体…

    C# 2023年6月6日
    00
  • C# Environment.GetCommandLineArgs()方法: 获取当前应用程序的命令行参数

    Environment.GetCommandLineArgs() 方法简介 Environment.GetCommandLineArgs() 方法返回当前进程的命令行参数。命令行参数是启动进程时指定的字符串数组,例如,从命令行或通过使用Process.Start 方法启动进程时,可以传递命令行参数,这些参数将通过Environment.GetCommandL…

    C# 2023年4月19日
    00
  • 再谈异常处理try catch finally

    再谈异常处理try-catch-finally 异常处理是程序设计中很重要的一个概念。如果在程序中不合理地使用异常处理,可能会引起严重错误,并且难以解决。而try-catch-finally结构就是用来帮助我们正确地处理异常的。 try-catch结构的基本语法 try: # 可能会引起异常的代码块 pass except ExceptionType as …

    C# 2023年5月15日
    00
  • 关于C# if语句中并列条件的执行

    关于C#中if语句中并列条件的执行,可以分为以下三种情况: 如果是使用&&符号连接的两个条件,则第一个条件返回false时,整个if语句直接返回false,不会判断第二个条件。只有当第一个条件返回true时,才会判断第二个条件,如果第二个条件也返回true,整个if语句才会返回true。具体示例代码如下: int a = 1, b = 2, …

    C# 2023年5月15日
    00
  • ASP.NET MVC实现树形导航菜单

    以下是“ASP.NET MVC实现树形导航菜单”的完整攻略: 什么是ASP.NET MVC实现树形导航菜单 ASP.NET MVC实现树形导航菜单是一种机制,允许开发人在MVC视图页中使用递归法和HTML标记生成树形导航菜单。这种机制可以帮助开发人员更轻地处理导航菜单,并提高用户体验。 ASP.NET MVC实现树形导菜单的步骤 ASP.NET MVC实现树…

    C# 2023年5月12日
    00
  • C# Partial:分部方法和分部类代码实例

    下面是详细讲解“C# Partial:分部方法和分部类代码实例”的完整攻略: 概述 C# Partial 是一种将类或方法分成多个部分的技术。在大型项目中,为了方便管理和维护,可以将类或者方法按照功能或者逻辑进行划分,分成多个文件进行编写。这时就需要用到 C# Partial 技术。 C# Partial 分部类 1. 定义 C# Partial 分部类是指…

    C# 2023年6月6日
    00
合作推广
合作推广
分享本页
返回顶部