.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日

相关文章

  • C#创建Excel多级分组的方法

    C#创建Excel多级分组的方法 概述 在使用C#操作Excel表格时,有时需要将数据按多个字段进行分组展示,这就需要使用Excel中的多级分组功能。本文将介绍如何使用C#创建Excel多级分组,并提供两个示例说明。 示例说明 示例1:使用C#创建Excel多级分组 下面是一个示例代码,演示如何使用C#创建Excel多级分组。 using System; u…

    C# 2023年6月7日
    00
  • 整理C# 二进制,十进制,十六进制 互转

    下面是关于“整理C# 二进制,十进制,十六进制 互转”的完整攻略。 1. 前置知识 在学习C#二进制、十进制、十六进制之间的互转之前,需要掌握基本的进制转换和C#数据类型知识,例如: 十进制转换成二进制、十六进制 二进制转换成十进制、十六进制 十六进制转换成二进制、十进制 C#中的byte、short、int、long、Single、Double等数据类型,…

    C# 2023年6月7日
    00
  • C# 泛型类(函数)的实例化小例子

    C# 提供了泛型类和泛型函数,它们可以适用于不同的数据类型,使代码更加灵活和可重用。本文将为大家详细介绍 C# 泛型类(函数)的实例化小例子。 泛型类的定义 泛型类是一种不特定的类,它能够适应许多不同类型的数据,具备以下语法结构: class 类名<T> { // 类的方法和属性代码 } 其中,T 是泛型类型参数,可以是任何标识符。通过这个参数,…

    C# 2023年6月8日
    00
  • .NET core项目AsyncLocal在链路追踪中的应用

    针对“.NET core项目AsyncLocal在链路追踪中的应用”的完整攻略,我将分为以下几个部分进行讲解: 异步编程和链路追踪基础知识 AsyncLocal的概述与使用 AsyncLocal在链路追踪中的应用 两个示例说明 1. 异步编程和链路追踪基础知识 异步编程是近年来非常流行的一种编程方式,它的主要作用是提高程序的性能和吞吐量。在异步编程中,每个异…

    C# 2023年6月3日
    00
  • ASP.NET 生成静态页面 实现思路

    以下是关于“ASP.NET 生成静态页面 实现思路”的完整攻略。 什么是ASP.NET生成静态页面 在ASP.NET中,页面的内容通常是由ASP.NET引擎动态生成的。当用户请求ASPX页面时,服务器端ASP.NET引擎会解析页面中的代码,并将其转换为HTML代码,最终呈现在用户的浏览器中。但是,这种动态生成的方式会增加服务器的负担,并且对于搜索引擎的抓取也…

    C# 2023年6月3日
    00
  • 最全.NET Core 、.NET 5、.NET 6和.NET 7简介和区别

    .NET是一种用于构建多种应用的免费开源开发平台,可以使用多种语言,编辑器和库开发Web应用、Web API和微服务、云中的无服务器函数、云原生应用、移动应用、桌面应用、Windows WPF、Windows窗体、通用 Windows平台 (UWP)、游戏、物联网 (IoT)、机器学习、控制台应用、Windows服务。框架主要包括:.NET Framewor…

    C# 2023年4月18日
    00
  • 为HttpClient开启HTTP/2

    .Net Core在调用其他服务时,调用通常使用HttpClient,而HttpClient默认使用HTTP/1.1 。     配置 HttpClient 以使用 HTTP/2 h2 连接 自 .NET Core 3.0 发布以来, .NET 开发人员可以使用 HttpClient 启用 HTTP/2 。   设置 HTTP/2 的方法 DefaultRe…

    C# 2023年5月5日
    00
  • c#实现将pdf转文本的示例分享

    下面我会给出详细的 “c#实现将pdf转文本” 的攻略。 准备工作 在正式开始之前,你需要准备以下几个工具: 安装 .NET Framework,如果你已经安装了Visual Studio那么可以省略这一步。可以在 Microsoft 的官网上下载对应的版本。 安装 PDFBox .NET 库,PDFBox是Java语言编写的一个库,PDFBox .NET是…

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