ASP .NET MVC + EF 连接MySql

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 Users { get; set; }

//此方法用于配置数据库模型的各种方面,例如表名、列名、关系等

protected override void OnModelCreating(ModelBuilder modelBuilder)

{

//我们这里就为User实体类配置了他在数据库中对应的表

modelBuilder.Entity().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();

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

相关推荐

乐乐传奇手游推荐?哪个版本更受欢迎?怎么选择?
正版约彩365软件

乐乐传奇手游推荐?哪个版本更受欢迎?怎么选择?

📅 11-14 👁️ 5176
逃离塔科夫steam售价是多少 逃离塔科夫steam售价高吗
正版约彩365软件

逃离塔科夫steam售价是多少 逃离塔科夫steam售价高吗

📅 09-16 👁️ 5795
天长市的美食有哪些值得推荐,天长市哪里有本地特色饭店