当前位置:实例文章 » C#开发实例» [文章].NET 7.0 + MySQL在 C# 和 ASP.NET Core 中使用 Dapper 连接到 MySQL 数据库

.NET 7.0 + MySQL在 C# 和 ASP.NET Core 中使用 Dapper 连接到 MySQL 数据库

发布人:shili8 发布时间:2023-08-17 01:58 阅读次数:191

在C#和ASP.NET Core中使用Dapper连接到MySQL数据库是一种简单而高效的方法。Dapper是一个轻量级的ORM(对象关系映射)工具,它提供了一种简单的方式来执行SQL查询和操作数据库。

首先,确保你已经安装了.NET 7.0和MySQL数据库。然后,通过NuGet包管理器或者使用dotnet命令行工具安装Dapper。

接下来,创建一个新的C#控制台应用程序或ASP.NET Core项目。在项目中添加对Dapper和MySQL连接器的引用。

在C#控制台应用程序中,你可以使用以下代码示例连接到MySQL数据库:

csharp
using System;
using System.Data;
using System.Data.SqlClient;
using Dapper;

namespace DapperExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = Your MySQL Connection String;
            
            using (IDbConnection connection = new MySqlConnection(connectionString))
            {
                connection.Open();
                
                // 查询数据
                var result = connection.Query(SELECT * FROM Customers);
                foreach (var customer in result)
                {
                    Console.WriteLine($Customer ID: {customer.CustomerId} Name: {customer.Name});
                }
                
                // 插入数据
                var newCustomer = new { CustomerId = 1 Name = John Doe };
                connection.Execute(INSERT INTO Customers (CustomerId Name) VALUES (@CustomerId @Name) newCustomer);
                
                // 更新数据
                var updatedCustomer = new { CustomerId = 1 Name = Jane Smith };
                connection.Execute(UPDATE Customers SET Name = @Name WHERE CustomerId = @CustomerId updatedCustomer);
                
                // 删除数据
                var customerIdToDelete = 1;
                connection.Execute(DELETE FROM Customers WHERE CustomerId = @CustomerId new { CustomerId = customerIdToDelete });
            }
        }
    }
}


在ASP.NET Core项目中,你可以使用以下代码示例连接到MySQL数据库:

csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Dapper;
using MySql.Data.MySqlClient;

namespace DapperExample.Controllers
{
    [ApiController]
    [Route([controller])]
    public class CustomersController : ControllerBase
    {
        private readonly string _connectionString;

        public CustomersController()
        {
            _connectionString = Your MySQL Connection String;
        }

        [HttpGet]
        public IEnumerable Get()
        {
            using (var connection = new MySqlConnection(_connectionString))
            {
                connection.Open();

                var result = connection.Query(SELECT * FROM Customers);
                return result;
            }
        }

        [HttpPost]
        public void Post(Customer customer)
        {
            using (var connection = new MySqlConnection(_connectionString))
            {
                connection.Open();

                connection.Execute(INSERT INTO Customers (CustomerId Name) VALUES (@CustomerId @Name) customer);
            }
        }

        [HttpPut({id})]
        public void Put(int id Customer customer)
        {
            using (var connection = new MySqlConnection(_connectionString))
            {
                connection.Open();

                customer.CustomerId = id;
                connection.Execute(UPDATE Customers SET Name = @Name WHERE CustomerId = @CustomerId customer);
            }
        }

        [HttpDelete({id})]
        public void Delete(int id)
        {
            using (var connection = new MySqlConnection(_connectionString))
            {
                connection.Open();

                connection.Execute(DELETE FROM Customers WHERE CustomerId = @CustomerId new { CustomerId = id });
            }
        }
    }

    public class Customer
    {
        public int CustomerId { get; set; }
        public string Name { get; set; }
    }
}


以上代码示例演示了如何使用Dapper在C#和ASP.NET Core中连接到MySQL数据库。你可以根据自己的需求进行修改和扩展。请确保替换代码中的Your MySQL Connection String为你自己的MySQL连接字符串。

希望这篇文章对你有所帮助!

其他信息

其他资源

Top