.NetCore3.1使用CodeFirst并查询数据

本文为小白简洁教程,前端玩多了后端基本的忘了,所以做个笔记!

Code first

创建项目

1.创建一个WebApi项目并且命名为TodoApi
2.在该项目右键新建一个文件夹名为Module,主要放实现类,
创建TodoContext,UserInfo,UserInfoProcess三个类
2.在该项目右键新建一个文件夹名为Interface,主要接口类
创建IUserInfo接口类
在这里插入图片描述

下载NuGet包

  • 下载并引入需要用到的包:可通过控制台或直接搜索安装
Microsoft.EntityFrameworkCore  //EFCore框架
Microsoft.EntityFrameworkCore.SqlServer  //连接SQLserver依赖
Microsoft.EntityFrameworkCore.Tools  //工具包(数据迁移等)
Microsoft.EntityFrameworkCore.Design  //数据库上下文

添加实体

UserInfo.cs中创建一些字段,与数据库表对应的字段

  • 特性说明
    • [Table("UserTable")]:用于映射数据库的表名,这里映射的表名为"UserTable",可与实体名不一致
    • [Key]映射数据库主键
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace TodoApi.Module
{
    [Table("UserTable")]
    public class UserInfo
    {
        [Key]
        public int Id { get; set; }
        public string Name { get; set; }
        public string Password { get; set; }
    }
}

添加数据库上下文类

  • TodoContext.cs
using Microsoft.EntityFrameworkCore;

namespace TodoApi.Module
{
    public class TodoContext : DbContext
    {
        public TodoContext(DbContextOptions<TodoContext> options) : base(options) { }

        public DbSet<UserInfo> UserInfo { get; set; }
    }
}

注入上下文类

  • 先在项目根目录的appsettings.json资源文件中新增根节点数据库连接字符串
{
  "ConnectionStrings": {
    "UserDB": "server=127.0.0.1;database=UserDB;uid=sa;pwd=1233456;"
  }
}
  • 配置连接字符串后在Startup.cs服务启动入口类ConfigureServices方法中获取连接字符串并添加注入上下文
// 获取连接字符串
string sqlstr = Configuration.GetConnectionString("UserDB");
// 注入上下文
services.AddDbContext<TodoContext>(option => option.UseSqlServer(sqlstr));

生成数据

这Code First基本完成
通过 工具>>NuGet包管理器>>程序包管理器控制台 打开控制台

  1. 给迁移搭建基架,运行:Add-Migration InitialCreate命令,InitialCreate自定义名
    搭建基架成功后会生成一个文件夹里的基架代码(执行完第二步迁移后可删掉)
  2. 将新迁移数据创建数据库,运行:Update-Database
    迁移成功数据库会生成一个历史表(可删掉)
    可在SQL server客户端查看是否创建成功
    在这里插入图片描述

后续测试

添加接口并实现接口执行数据访问的业务类

  1. 这时候用到IUserInfo.cs了,这个接口带一个泛型,在里面写一个简单的获取用户数据的方法
    /// <summary>
    /// 用户业务逻辑层接口
    /// </summary>
    interface IUserInfo<T>
    {
        /// <summary>
        /// 获取用户信息
        /// </summary>
        List<T> getUserInfos();
    }
  1. 实现接口,UserInfoProcess.cs
    public class UserInfoProcess: IUserInfo<UserInfo>
    {
        //依赖注入上下文
        private readonly TodoContext _db;
        public UserInfoProcess(TodoContext todoContext)
        {
            _db = todoContext;
        }

        public List<UserInfo> getUserInfos()
        {
        	// 查询id大于5的用户信息
            var query = _db.UserInfo.Where (a=>a.Id>5).ToList();
            return query;
        }
    }

控制器提供开放Api

控制器类运行测试

Controllers文件夹添加一个名为UserController空的控制器,控制器代码:

    [Route("api/v1/[controller]")]
    [ApiController]
    public class UserController : ControllerBase
    {
        //依赖注入
        private readonly UserInfoProcess _userprocess;
        public UserController(UserInfoProcess userprocess)
        {
            _userprocess = userprocess;
        }
        
        [HttpGet]
        [Route("GetUserInfos")]
        public List<UserInfo> GetUsers()
        {
           var query= _userprocess.getUserInfos();
            return query;
        }
    }
  • 选择控制台调试会更方便
    在这里插入图片描述
    禁用浏览器调试在这里插入图片描述
  • 运行程序
    通过postman请求后发现报错
    在这里插入图片描述
    错误原因:没有依赖注入UserInfoProcess.cs
    解决方案:在Startup.cs中注入UserInfoProcess.cs
//依赖注入
services.AddTransient<UserInfoProcess>();

添加后再次运行测试,这时候发现成功,在UserInfoProcess.cs中设置断点查看数据
在这里插入图片描述
这样子就基本完成codefrist的基本操作

后言

工作中做的项目到底有多大也不能忘了最基础的东西,此文当作一个复习,希望可以帮到小白!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.NET Core 3.1是微软开发的一种跨平台的开发框架,可以用于构建各种应用程序,包括Web应用、移动应用、桌面应用等。它具有高性能、可扩展、易于维护等特点,被广泛应用于各个领域。 API(Application Programming Interface)是一种软件架构,用于不同系统之间的互操作和通信。通过使用API,我们可以将不同的应用程序和服务连接起来,实现数据交互和功能共享。 MySQL是一种常用的开源关系型数据库管理系统。它具有高性能、稳定性和安全性,并支持多平台。在.NET Core 3.1中,我们可以通过使用MySQL数据库提供程序来操作MySQL数据库。 在.NET Core 3.1 API中使用MySQL数据库,我们可以按照以下步骤进行: 1. 首先,我们需要安装MySQL数据库,并创建一个数据库,用于存储数据。 2. 接着,我们需要在.NET Core 3.1项目中安装MySQL数据库提供程序。可以使用NuGet包管理器或在项目文件中添加对MySQL提供程序的引用。 3. 在项目中添加对MySQL数据库的连接字符串的配置,包括服务器地址、用户名、密码和数据库名称等。 4. 创建一个数据模型,用于定义数据库中的表和字段。 5. 使用Entity Framework Core来执行数据库操作,包括查询、插入、更新和删除等。 6. 在API的控制器中编写相应的接口,用于处理客户端的请求并与数据库进行交互。 7. 在启动文件中配置Web API的路由和Authentication。 通过以上步骤,我们就可以在.NET Core 3.1的API中使用MySQL数据库。使用MySQL数据库可以提供数据存储和检索的功能,使我们的API可以处理和管理数据。同时,由于.NET Core 3.1的跨平台特性,我们可以在不同的操作系统上部署和运行我们的API,实现应用程序的跨平台和多设备支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值