.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#简单遍历指定文件夹中所有文件的方法

    下面是“C#简单遍历指定文件夹中所有文件的方法”的完整攻略。 1. 使用Directory类 我们可以使用C#内置的Directory类来实现遍历指定文件夹中所有文件的功能。具体实现步骤如下: 引用System.IO命名空间,使用Directory.GetFiles()方法获取指定文件夹中所有文件的路径。 使用foreach循环遍历获取到的文件路径,在循环体…

    C# 2023年6月1日
    00
  • C#后台接受前台JSON字符串装换成字典集合处理

    C#后台接收前台JSON字符串,可以通过Newtonsoft.Json等第三方库实现。下面是一些处理JSON字符串的实践方案。 1. 将JSON字符串转化为字典(Dictionary)集合 可以先定义一个自定义类的静态方法,将JSON数据作为参数传入,通过Newtonsoft.Json库中的JsonConvert.DeserializeObject方法将JS…

    C# 2023年5月31日
    00
  • C# 事件的设计与使用深入理解

    C# 事件的设计与使用深入理解 1. 什么是C#事件 在C#中,事件是一种方法,这个方法是用来通知外部程序有某个特定的操作已经发生,以便订阅该事件的程序或方法可以做出相应的响应。事件是C#程序中基于委托的重要机制。 2. C#事件的设计 C#事件的设计包含两个主要部分: 2.1 事件发送者(Publisher) 事件发送者是指负责触发事件的对象,它需要满足以…

    C# 2023年5月31日
    00
  • C#三种判断数据库中取出的字段值是否为空(NULL) 的方法

    下面是关于C#三种判断数据库中取出的字段值是否为空(NULL)的方法的详细讲解攻略。 方法一:使用Convert.IsDBNull() 可以使用Convert.IsDBNull()方法来判断取出的字段值是否为空。这个方法是针对null值的,如果字段值是null,则返回true,否则返回false。示例如下: string name = "&quot…

    C# 2023年5月31日
    00
  • ASP.NET MVC使用jQuery的Load方法加载静态页面及注意事项

    ASP.NET MVC使用jQuery的Load方法加载静态页面及注意事项的完整攻略如下: 首先,在View中添加一个用于显示静态页面的容器。在Views文件夹中,打开要添加静态页面视图,然后添加以下代码: <div id="static-content"></div> 这里我们添加了一个id为“static-co…

    C# 2023年5月12日
    00
  • C# 获取动态key的json对象的值案例

    下面我来详细讲解一下“C# 获取动态key的json对象的值案例”的完整攻略。 1.前言 在C#开发过程中,我们经常需要从json数据中获取特定的值。但是在实际开发中,json数据中包含的key是动态的,无法提前确定。这时我们需要一种能够灵活处理动态key的方法。 2.解决方案 2.1 使用Newtonsoft.Json库 我们可以使用Newtonsoft.…

    C# 2023年5月31日
    00
  • C#实现前向最大匹、字典树(分词、检索)的示例代码

    如果要实现分词和检索功能,可以用前向最大匹配和字典树算法。在C#中实现这两个功能,可以按照以下步骤进行: 实现前向最大匹配算法 前向最大匹配算法是将待分词的文本从左到右进行扫描,每次取出最长的词作为分词结果。为了实现该算法,需要将待分词的文本和词典中的词进行转换,以便进行匹配。下面是C#中的前向最大匹配算法示例代码: public static List&l…

    C# 2023年5月31日
    00
  • C#通过yield实现数组全排列的方法

    下面是关于“C#通过yield实现数组全排列的方法”的完整攻略,包含两个示例。 1. 什么是数组全排列 数组全排列是指将一个数组中的所有元素进行排列组合,得到所有可能的排列方式。例如,对于数组[1, 2, 3],它的全排列为[1, 2, 3]、[1, 3, 2]、[2, 1, 3]、[2, 3, 1]、[3, 1, 2]和[3, 2, 1]。 2. C#通过…

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