EF Core反向工程[MVC]

数据库

使用Navicat在数据库中创建一张表(mysql)

CREATE TABLE `student_class` (
  `Classid` int NOT NULL,
  `ClassName` varchar(255) NOT NULL,
  `Hours` int NOT NULL,
  `Name` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

项目

注意: 版本跨越过大的Nuget包会出现版本冲突

创建一个空的mvc项目,安装三个Nuget包

注意:text2是我个人的数据库名,根据个人实际情况进行修改

终端

从数据库中生成实体框架的上下文和模型类

Rider终端或cmd都可,cmd需要进入该项目下才可运行;命令根据自己所使用的数据库进行选择

MySQL

dotnet ef dbcontext scaffold "server=127.0.0.1;uid=root;pwd=123456;database=text2" Pomelo.EntityFrameworkCore.MySql --context-dir Data --output-dir Entities

注意:命令中的uid、pwd、database、server要与自己使用的一致   注意检查!!!

这时候项目中就会自动创建两个文件夹以两个类

Program类

将上面自动生成的text2Context 数据库上下文注入到服务容器中,并指定数据库连接字符串和数据库版本。

builder.Services.AddDbContext<text2Context>(
    options =>
    {
        options.UseMySql(builder.Configuration.GetConnectionString("MyDatabase"),
            Microsoft.EntityFrameworkCore.ServerVersion.Parse("8.0.33-mysql"));
    });

appsettings.json文件

数据库连接字符串

控制器

在控制器中进行依赖注入,将日志记录器和数据库上下文通过构造函数形式注入到控制器中。

public class HomeController : Controller
{
    private readonly ILogger<HomeController> _logger;
    private readonly text2Context _text2Context;

    public HomeController(ILogger<HomeController> logger, text2Context text2Context)
    {
        _logger = logger;
        _text2Context = text2Context;
    }

控制器的 Index 方法中,通过注入的context,从数据库中获取 StudentClasses 表的所有记录,然后将这些记录传递给视图进行进行展示。

    public IActionResult Index()
    {
        var studentClasses = _text2Context.StudentClasses.AsNoTracking().ToList();
        return View(studentClasses);
    }

index文件

@model List<Step5.Unit1.Entities.StudentClass>

<h2>Student Classes</h2>

<ul>
    @foreach (var studentClass in Model)
    {
        <li>Class Name: @studentClass.ClassName</li>
    }
</ul>

参考文献:http://t.csdnimg.cn/j3Sn8

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值