您好,
会员登录 快速注册
退出 ( 条未读消息)
关于本站 意见反馈 首页

公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!
全部文章分类
  • 人工智能 >

  • 编程语言 >

  • WPF系列 >

  • ASP.NET系列 >

  • Linux >

  • 数据库 >

  • 嵌入式 >

  • WEB技术 >

  • PLC系列 >

  • 微服务与框架 >

  • 小宅DIY >

  • 学习资料 >

OpenCv基础 ANN车牌识别 yolov5车牌识别 指针式仪表识别 ROS系列 YOLO Halcon Detectron2 昇腾AI ChatGPT在线体验 英伟达JETSON ChatGLM ChatTTS FunASR 地平线 ByteTrack 魔搭社区 LangChain
C C# C++ Python Java Go
WPF
ASP.NET小功能 GPS定位系统-MVC GPS定位系统-VUE ASP.NET WebRTC
Linux Linux内核 Shell MakeFile
MySql SqlServer Oracle
STM8 STM32 51单片机
VUE入门 HTML JavaScript CSS layui镜像网站 ElementUi中文官网 element-plus 图标
三菱 欧姆龙 西门子 施耐德 松下 台达
IOTSharp IOTGateway ABP FRAMEWORK Docker
亚克力音响 编程仙途:智驭万法
面试题与技巧 Python入门技能树 微软C#教程
首页 编程之美 工具下载 全国就业 流量地图 文心一言
GPS定位系统-VUE
ASP.NET+VUE GPS定位系统介绍(物联网) 系列源码下载页 asp.net 新建web api工程 asp.net 集成必要的组件和注入 asp.net 集成 EFCore mysql 数据库操作类 asp.net 自定义GPRS通讯协议 asp.net 集成 Tcp Server 服务 asp.net 添加web api接口 asp.net 补充功能 新建VUE工程 vue工程添加项目文件 新建Windows Server 2022虚拟机 Windows Server 2022 IIS运行环境配置 ASP.NET IIS发布 VUE工程 IIS发布 ASP.NET Docker发布(额外内容) VUE Docker发布(额外内容) 结束语(VUE框架)
asp.net 集成必要的组件和注入
asp.net 自定义GPRS通讯协议
激萌の小宅 小宅博客 GPS定位系统-VUE

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

asp.net 集成 EFCore mysql 数据库操作类

工程源码下载:GPS定位系统VUE版本源码下载

参考博客:C#环境下使用EF操作MySql

mysql数据安装教程:Windows环境下如何安装MySql


集成数据库类库

右键解决方案,新建一个名为DbEntity的类库项目

QQ截图20240725143833.jpg

QQ截图20240725144040.jpg

QQ截图20240725144143.jpg


选择.net 6.0框架

QQ截图20240725144223.jpg


新建好的类库,按下面格式,新建4个cs文件

“Tables/DbBase.cs”报表公共字段类

“Tables/GpsData.cs”Gps数据报表

“Tables/User.cs”用户信息表

“MyDbContext.cs”数据库初始化类,供外部调用

QQ截图20240725144900.jpg


先添加依赖项

Microsoft.EntityFrameworkCore 7.0.0

MySql.EntityFrameworkCore 7.0.0

注意:两个库的版本要保持一致,并且版本不能太高,不然会有兼容问题,运行会报错

QQ截图20240725154137.jpg


Tables/DbBase.cs 代码如下:

using System.ComponentModel.DataAnnotations;

namespace DbEntity.Tables
{
    public class DbBase
    {
        [Key]
        /// <summary>
        /// id
        /// </summary>
        public string id { get; set; } = Guid.NewGuid().ToString("N");

        /// <summary>
        /// 添加时间
        /// </summary>
        public DateTime CreateTime { get; set; } = DateTime.Now;

        /// <summary>
        /// 最后修改时间
        /// </summary>
        public DateTime UpdateTime { get; set; } = DateTime.Now;

        /// <summary>
        /// 删除时间
        /// </summary>
        public DateTime? DeleteTime { get; set; }

        /// <summary>
        /// 删除状态
        /// </summary>
        public int DeleteFlag { get; set; }
    }
}


Tables/GpsData.cs 代码如下:

using System.ComponentModel.DataAnnotations;

namespace DbEntity.Tables
{
    public class GpsData : DbBase
    {
        /// <summary>
        /// 用户识别编码,确保该坐标属于哪个用户的
        /// </summary>
        public string UserId { get; set; }

        /// <summary>
        /// 设备号
        /// </summary>
        public int devid { get; set; }

        /// <summary>
        /// 账号/用户名
        /// </summary>
        public string Account { get; set; }

        /// <summary>
        /// 用户昵称
        /// </summary>
        public string NickName { get; set; }

        /// <summary>
        /// 经度
        /// </summary>
        public decimal longitude { get; set; }

        /// <summary>
        /// 纬度
        /// </summary>
        public decimal latitude { get; set; }
    }
}


Tables/User.cs 代码如下:

namespace DbEntity.Tables
{
    public class User : DbBase
    {
        /// <summary>
        /// 账号/用户名
        /// </summary>
        public string Account { get; set; }

        /// <summary>
        /// 密码
        /// </summary>
        public string Password { get; set; }

        /// <summary>
        /// 用户昵称
        /// </summary>
        public string NickName { get; set; }

        /// <summary>
        /// 权限级别
        /// <para>0:普通用户</para>
        /// <para>1:管理员</para>
        /// </summary>
        public int Level { get; set; }
    }
}


MyDbContext.cs 代码如下:

using DbEntity.Tables;
using Microsoft.EntityFrameworkCore;

namespace DbEntity
{
    public class MyDbContext : DbContext
    {
        /// <summary>
        /// 数据库的配置信息
        /// </summary>
        public static string config { get; set; }

        /// <summary>
        /// 用户信息表
        /// </summary>
        public DbSet<User> Tb_User { set; get; }

        /// <summary>
        /// GPS坐标数据
        /// </summary>
        public DbSet<GpsData> Tb_GpsData { set; get; }

        /// <summary>
        /// 连接数据库
        /// </summary>
        /// <param name="optionsBuilder"></param>
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseMySQL(config);
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            modelBuilder.Entity<GpsData>(entity =>
            {
                entity.Property(e => e.latitude).HasPrecision(18, 15);
                entity.Property(e => e.longitude).HasPrecision(18, 15);
            });
        }
    }
}


将DbEntity类库通过项目引用,引用到我们的WebApplicationApi工程中。

QQ截图20240725150646.jpg


初始化数据库生成报表

在项目中新增一个名为ServerInit的cs文件,用于初始化我们一些必要的操作,如:初始化数据库、初始化队列、初始化TCP等。

QQ截图20240725152110.jpg


我们这边,先初始化数据库,其他的初始化操作我们后来再一个个添加:

using DbEntity;
using Serilog;

namespace WebApplicationApi
{
    public class ServerInit
    {
        public ServerInit(string sql, string tcp)
        {
            Log.Information(sql);
            MyDbContext.config = sql;

            DbInit();// 数据库初始化
        }

        /// <summary>
        /// 启动数据库
        /// </summary>
        private void DbInit()
        {
            try
            {
                using (MyDbContext db = new MyDbContext())
                {
                    db.Database.EnsureCreated();
                }
            }
            catch (Exception e)
            {
                Log.Error(e.Message);
            }
        }
    }
}


记得将前面Program.cs文件中屏蔽的 new ServerInit()操作打开:

QQ截图20240725152407.jpg


然后再次运行我们的工程,程序就会自动生成我们的两张数据库表了,到这里,我们的EFcore就集成完成了。

QQ截图20240725154336.jpg



asp.net 集成必要的组件和注入
asp.net 自定义GPRS通讯协议

友情链接: CSDN激萌の小宅 95知识库 自考题库 罗分明个人网络博客 精益编程leanboot

小宅博客  www.bilibili996.com All Rights Reserved. 备案号: 闽ICP备2024034575号

网站经营许可证  福建省福州市 Copyright©2021-2025 版权所有

小宅博客
首页 智能家居 地图定位
公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

asp.net 集成 EFCore mysql 数据库操作类

工程源码下载:GPS定位系统VUE版本源码下载

参考博客:C#环境下使用EF操作MySql

mysql数据安装教程:Windows环境下如何安装MySql


集成数据库类库

右键解决方案,新建一个名为DbEntity的类库项目

QQ截图20240725143833.jpg

QQ截图20240725144040.jpg

QQ截图20240725144143.jpg


选择.net 6.0框架

QQ截图20240725144223.jpg


新建好的类库,按下面格式,新建4个cs文件

“Tables/DbBase.cs”报表公共字段类

“Tables/GpsData.cs”Gps数据报表

“Tables/User.cs”用户信息表

“MyDbContext.cs”数据库初始化类,供外部调用

QQ截图20240725144900.jpg


先添加依赖项

Microsoft.EntityFrameworkCore 7.0.0

MySql.EntityFrameworkCore 7.0.0

注意:两个库的版本要保持一致,并且版本不能太高,不然会有兼容问题,运行会报错

QQ截图20240725154137.jpg


Tables/DbBase.cs 代码如下:

using System.ComponentModel.DataAnnotations;

namespace DbEntity.Tables
{
    public class DbBase
    {
        [Key]
        /// <summary>
        /// id
        /// </summary>
        public string id { get; set; } = Guid.NewGuid().ToString("N");

        /// <summary>
        /// 添加时间
        /// </summary>
        public DateTime CreateTime { get; set; } = DateTime.Now;

        /// <summary>
        /// 最后修改时间
        /// </summary>
        public DateTime UpdateTime { get; set; } = DateTime.Now;

        /// <summary>
        /// 删除时间
        /// </summary>
        public DateTime? DeleteTime { get; set; }

        /// <summary>
        /// 删除状态
        /// </summary>
        public int DeleteFlag { get; set; }
    }
}


Tables/GpsData.cs 代码如下:

using System.ComponentModel.DataAnnotations;

namespace DbEntity.Tables
{
    public class GpsData : DbBase
    {
        /// <summary>
        /// 用户识别编码,确保该坐标属于哪个用户的
        /// </summary>
        public string UserId { get; set; }

        /// <summary>
        /// 设备号
        /// </summary>
        public int devid { get; set; }

        /// <summary>
        /// 账号/用户名
        /// </summary>
        public string Account { get; set; }

        /// <summary>
        /// 用户昵称
        /// </summary>
        public string NickName { get; set; }

        /// <summary>
        /// 经度
        /// </summary>
        public decimal longitude { get; set; }

        /// <summary>
        /// 纬度
        /// </summary>
        public decimal latitude { get; set; }
    }
}


Tables/User.cs 代码如下:

namespace DbEntity.Tables
{
    public class User : DbBase
    {
        /// <summary>
        /// 账号/用户名
        /// </summary>
        public string Account { get; set; }

        /// <summary>
        /// 密码
        /// </summary>
        public string Password { get; set; }

        /// <summary>
        /// 用户昵称
        /// </summary>
        public string NickName { get; set; }

        /// <summary>
        /// 权限级别
        /// <para>0:普通用户</para>
        /// <para>1:管理员</para>
        /// </summary>
        public int Level { get; set; }
    }
}


MyDbContext.cs 代码如下:

using DbEntity.Tables;
using Microsoft.EntityFrameworkCore;

namespace DbEntity
{
    public class MyDbContext : DbContext
    {
        /// <summary>
        /// 数据库的配置信息
        /// </summary>
        public static string config { get; set; }

        /// <summary>
        /// 用户信息表
        /// </summary>
        public DbSet<User> Tb_User { set; get; }

        /// <summary>
        /// GPS坐标数据
        /// </summary>
        public DbSet<GpsData> Tb_GpsData { set; get; }

        /// <summary>
        /// 连接数据库
        /// </summary>
        /// <param name="optionsBuilder"></param>
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseMySQL(config);
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            modelBuilder.Entity<GpsData>(entity =>
            {
                entity.Property(e => e.latitude).HasPrecision(18, 15);
                entity.Property(e => e.longitude).HasPrecision(18, 15);
            });
        }
    }
}


将DbEntity类库通过项目引用,引用到我们的WebApplicationApi工程中。

QQ截图20240725150646.jpg


初始化数据库生成报表

在项目中新增一个名为ServerInit的cs文件,用于初始化我们一些必要的操作,如:初始化数据库、初始化队列、初始化TCP等。

QQ截图20240725152110.jpg


我们这边,先初始化数据库,其他的初始化操作我们后来再一个个添加:

using DbEntity;
using Serilog;

namespace WebApplicationApi
{
    public class ServerInit
    {
        public ServerInit(string sql, string tcp)
        {
            Log.Information(sql);
            MyDbContext.config = sql;

            DbInit();// 数据库初始化
        }

        /// <summary>
        /// 启动数据库
        /// </summary>
        private void DbInit()
        {
            try
            {
                using (MyDbContext db = new MyDbContext())
                {
                    db.Database.EnsureCreated();
                }
            }
            catch (Exception e)
            {
                Log.Error(e.Message);
            }
        }
    }
}


记得将前面Program.cs文件中屏蔽的 new ServerInit()操作打开:

QQ截图20240725152407.jpg


然后再次运行我们的工程,程序就会自动生成我们的两张数据库表了,到这里,我们的EFcore就集成完成了。

QQ截图20240725154336.jpg