栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

【EFCore+MYSQL】.net.web API 6 连接mysql数据库,实现查询,修改功能

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【EFCore+MYSQL】.net.web API 6 连接mysql数据库,实现查询,修改功能

Entity Framework Core+MYSQL+ASP.net.web API 6
  • 文章介绍
  • 资源连接
  • Code Frist
    • 新建项目一个Web API项目:EFcore
    • 添加mySQL数据库连接字符串
    • 项目文件夹中新建一个文件夹:Models
    • Codefrist 将代码映射到数据库
    • 本机查看mysql数据库新建了一个表
    • 添加几个控制对数据库进行操作

文章介绍
  • 实现EFcore连接本地Mysql数据库
  • 最新版本的ASP.NET.CORE.Web API 不是MVC方式
  • 实现dbfrist和code 。
资源连接

第一篇:第一次使用efcore
第三篇: EFcore dbfrist链接mysql数据库

本篇源码:本篇源码
第一篇源码:第一篇源码

Code Frist 新建项目一个Web API项目:EFcore
  • 取消配置HTTPS
  • 安装如下nuget包
Entity Framework Core
Entity Framework Core.Tools
Entity Framework Core.SqlServer 	//这个连接sqlsever需要
pomelo.Entity Framework Core.mysql  //这个连接mysql需要
添加mySQL数据库连接字符串
  • appsettings.json文件中
  "ConnectionStrings": {
    "MySQLConnection": "server=localhost;port=3306;uid=root;pwd=liai1234;database=EFCoredb"
  },

项目文件夹中新建一个文件夹:Models
  • 添加两个类:Parameter 和 ParameterContext
  • Parameter .cs
    public partial class Parameter
    {
        [Key]
        [Column("id")]
        public int Id { get; set; }

        [Column("auto")]
        public string Auto { get; set; } = null!;

        [Column("plcaddress")]
        public string Plcaddress { get; set; } = null!;

        [Column("type")]
        public string Type { get; set; } = null!;

        [Column("swith")]
        public string Swith { get; set; } = null!;

        [Column("ceiling")]
        public string Ceiling { get; set; } = null!;

        [Column("limit")]
        public string Limit { get; set; } = null!;
}
  • ParameterContext.cs
    public partial class ParameterContext : DbContext
    {
        public ParameterContext()
        {
        }

        public ParameterContext(DbContextOptions options)
            : base(options)
        {
        }

        public virtual DbSet Parameter { get; set; } = null!;

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.UseCollation("utf8_general_ci")
                .HasCharSet("utf8");

            //public int Id { get; set; }
            //public string UserName { get; set; } = null!;
            //public string PassWord { get; set; } = null!;
            //public string DepartmentName { get; set; } = null!;


            modelBuilder.Entity(entity =>
            {
                entity.ToTable("Parameter_Table");
                entity.Property(e => e.Swith)
                    .HasMaxLength(200)
                    .HasColumnName("swith");
            });

            OnModelCreatingPartial(modelBuilder);
        }

        partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
    }

  • Program.cs
 builder.Services.AddDbContext(opt => {
    string connectionString = builder.Configuration.GetConnectionString("MySQLConnection");
    var serverVersion = ServerVersion.AutoDetect(connectionString);
    opt.UseMySql(connectionString, serverVersion); });
Codefrist 将代码映射到数据库
  • 点击工具 ->NUGET包管理器 -> 程序包管理器控制台
  • 依次执行下列迁移命令,不要执行Remove-Migration
  • 如果更改了models,需要删除迁移,然后重新迁移
 Get-help Migration    //查询命令
 
 Add-Migration init    //迁移
 
 Remove-Migration      //迁移删除

 Update-Database       //更新到数据库
本机查看mysql数据库新建了一个表

添加几个控制对数据库进行操作

新建控制器:ParameterController

  • ParameterController.cs
    [Route("api/")]
    [ApiController]

    public class ParameterController : ControllerBase
    {
        ParameterContext ParameterContext;

        public ParameterController(ParameterContext ParameterContext)
        {
            this.ParameterContext = ParameterContext;
        }


        //查找表中所有数据
        [HttpGet("parameter/getall")]
        public IActionResult GetAll()
        {
            List ParameterTable = ParameterContext.Parameter.ToList();  //查出所有
            return Ok(ParameterTable);
        }


        //添加一个数据,传入一个不带ID的
        [HttpPost("parameter/postone")]
        public IActionResult PostOne(Parameter parameter)
        {
            var Parameter = ParameterContext.Parameter.FirstOrDefault(a => a.Id == parameter.Id);
            if (Parameter != null)
            {
                return BadRequest(new { conut = -1, msg = "添加失败,id重复" });
            }
            ParameterContext.Parameter.Add(parameter);  //添加一个
            ParameterContext.SaveChanges();
            return Ok();
        }

        //修改数据,传入对象,找到对应id的数据实现更新
        [HttpPost("parameter/modifyone")]
        public IActionResult Modify(Parameter parameter)
        {
            var Parameter = ParameterContext.Parameter.FirstOrDefault(a => a.Id == parameter.Id);
            if (Parameter == null)
            {
                return BadRequest(new { conut = -1, msg = "修改失败,未找到数据" });
            }
            //修改数据
            // ParameterTable.Id = parameter.Id;
            Parameter.Ceiling = parameter.Ceiling;
            Parameter.Swith = parameter.Swith;
            Parameter.Limit = parameter.Limit;
            Parameter.Auto = parameter.Auto;
            Parameter.Type = parameter.Type;
            Parameter.Plcaddress = parameter.Plcaddress;

            ParameterContext.Parameter.Update(Parameter);
            ParameterContext.SaveChanges();
            return Ok(parameter);
        }

        //移除一个对象,根据id移除
        [HttpPost("parameter/Removeone")]
        public IActionResult Remove(Parameter parameter)
        {
            var Parameter = ParameterContext.Parameter.FirstOrDefault(a => a.Id == parameter.Id);
            //修改数据

            if (Parameter == null)
            {
                return NotFound();
            }
            ParameterContext.Parameter.Remove(Parameter);
            ParameterContext.SaveChanges();
            return Ok(Parameter);
        }
    }




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/904474.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号