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的数据以及被删除了。