ASP .NET MVC + EF 连接MySql

1.创建MVC项目

 

项目位置自行调整

        然后下一步,创建即可,我这里用的是.net 8.0

2.添加程序包,并准备好要用的库和表

        创建好后,在解决方案上右键单击,选择“管理解决方案的NuGet程序包”

        在打开的页面中,我们单击浏览,然后在搜索框中输入:Pomelo.EntityFrameworkCore.MySql

进行搜索,然后安装这个包。

        装好包后,我们去数据库添加一个数据库,并创建一个表,这里建库建表比较简单,就不做过多赘述,可以参考我这里的库表(库名:database,表名:user,属性字段三个):

        创建好后,我们进入下一步,创建表的对应实体类。

3.创建实体类,并完成相关配置

       请在Models文件夹下创建一个实体类,属性与数据库创建的表字段一一对应:

        然后再创建一个类,让他去继承数据库的上下文类。

        在类中写入如下内容:

using Microsoft.EntityFrameworkCore;
using WebApplication1.Models;

namespace WebApplication2.Models
{
    public class AntContext:DbContext
    {
        //定义了一个名为 Users 的实体集,该实体集对应于数据库中的 user 表
        //之后可以使用 Users 属性来查询、添加、更新或删除 user 表中的记录
        public DbSet<User> Users { get; set; }

        //此方法用于配置数据库模型的各种方面,例如表名、列名、关系等
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            //我们这里就为User实体类配置了他在数据库中对应的表
            modelBuilder.Entity<User>().ToTable("user");
        }

        //该类配置了如何连接到数据库。它使用 UseMySql 方法指定了 MySQL 数据库的连接字符串和版本。
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            //我的数据库是8.0.36版本所以下面写的是(8,0,36),你们依照自己的修改
            optionsBuilder.UseMySql(
                @"Server=localhost;port=3306;database=database;user=root;password=123456;",
                new MySqlServerVersion(new Version(8, 0, 36))
                );
        }
    }
}

        这里如果不知道数据库版本的,可以在数据库新建查询,然后执行"SELECT VERSION();"

        知晓版本号后,代码里自己调整参数。

        调整好后,我们还要修改配置文件,去program.cs文件中,我们输入:

                        builder.Services.AddDbContext<AntContext>();

        

4.查询实例

        我们来判断是否可以正常访问数据库的数据,我们进入HomeController这个控制器中,然后在其内补入如下部分的内容:

        声明对象,在构造方法里再实例化,然后在Index方法中再调用,我们这里断点调试一下,直接启动,因为Program.cs中默认设置了启动项目会直接访问Index方法。

        记得保存确定没有语法错误再执行!调试结果如下:

        可以看到,我们查询出来的list中只有一条数据,然后对上了数据库中的那一条数据,一模一样!至此查询是没有问题了。

        点击继续,我们可以看到控制台输出了我们list.Count()的内容:1,表示1条记录。

5.添加实例

        我们现在控制器上补入如下内容:[Route("[Controller]/[action]")]

        这有便于我们调用接口,你也可以选择去Program.cs中写配置实现同样功能。

        创建一个方法,名字就叫Add吧。

public string Add()
{
    try
    {
        var info = new User()
        {
            Id = 2,
            UserName = "张三",
            PassWord = "12138"
        };
        //将新创建的 User 对象添加到 AntContext 的 Users 集合中  
        _context.Users.Add(info);
        // 保存对 AntContext 所做的所有更改到数据库中
        _context.SaveChanges();
    }
    catch (Exception ex)
    {
        return "失败";
    }
    return "成功";
}

        图示如下:

        然后启动项目,记得调整访问路径,去访问这个Add方法哦!

        可以看到成功了!去数据库查看是否添加进去了:

        好的,可以看见,我们也成功了,至此,添加实例演示完毕。

6.修改实例

        修改实例我们就做快点了,常规的写法都是先获取,再修改保存,我们这里也这么写吧,先指定查询,然后取出一条,修改其内的某个值,然后提交给数据库保存更改的状态。

        代码:

public string Update()
{
    try
    {
        //取出Id为2的数据
        var info = _context.Users.Where(n => n.Id == 2).First();
        //修改数据的密码
        info.PassWord = "5201314";
        //将更改的info放入Users集合中,替换原来的(会以主键Id去替换掉)  
        _context.Users.Update(info);
        // 保存对 AntContext 所做的所有更改到数据库中
        _context.SaveChanges();
    }
    catch (Exception ex)
    {
        return "失败";
    }
    return "成功";
}

        运行查看结果:

        去数据库查看一下:

        可以看到已经修改了!

7.删除实例

        代码:

public string Delete()
{
    try
    {
        //取出Id为2的数据
        var info = _context.Users.Where(n => n.Id == 2).First();
        //删除目标数据 
        _context.Users.Remove(info);
        // 保存对 AntContext 所做的所有更改到数据库中
        _context.SaveChanges();
    }
    catch (Exception ex)
    {
        return "失败";
    }
    return "成功";
}

        运行后的数据库结果:

可以看到,我们执行这个方法后,Id为2的数据以及被删除了。

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值