.net core EF 入门笔记

最近在写一个后台任务轮询的项目,了解下来最终选择了quartZ ,   既然是项目,那么首当其冲的是 数据库访问层,.net  core 已经出到3.0了    ,小白的我也想尝试一下,个人还是喜欢ORM框架,那么说起微软ORM框架首想的应该是EntityFramework 了, OK   接下来就让我一起来入门吧,这里我先从.net core 控台台应用程序开始。

既然是ORM框架,首先应该有Model(本次采用code first 模式),一顿常规操作之后

 我们的类如下:

 public class QuartJobLog
    {
        private int _id = 0;
        private string _job_name;
        private string _job_result;
        private string _job_exception;
        private int _job_exetime;
        private DateTime _job_exedate;
        private int _job_exestate;
        private DateTime _addtime;

        /// <summary>
        /// 主键
        /// </summary>
        public int Id { get => _id; set => _id = value; }
        /// <summary>
        /// 
        /// </summary>
        public int JobId { get; set; }
        /// <summary>
        /// 任务名称
        /// </summary>
        public string Job_name { get => _job_name; set => _job_name = value; }
        /// <summary>
        /// 执行的结果
        /// </summary>
        public string Job_result { get => _job_result; set => _job_result = value; }
        /// <summary>
        /// 执行任务的异常信息
        /// </summary>
        public string Job_exception { get => _job_exception; set => _job_exception = value; }
        /// <summary>
        /// 执行耗时,单位ms
        /// </summary>
        public int Job_exetime { get => _job_exetime; set => _job_exetime = value; }
        /// <summary>
        /// 任务的执行的日期时间
        /// </summary>
        public DateTime Job_exedate { get => _job_exedate; set => _job_exedate = value; }
        /// <summary>
        /// 执行结果 0 正常,1 异常
        /// </summary>
        public int Job_exestate { get => _job_exestate; set => _job_exestate = value; }
        /// <summary>
        /// 任务的执行时间
        /// </summary>
        public DateTime Addtime { get => _addtime; set => _addtime = value; }
    }
public class QuartJobSchedule
    {
        private int _id = 0;
        private string _job_name;
        private string _job_assembly;
        private string _job_class;
        private string _job_corn;
        private int _job_type = 1;
        private int _job_execount = 0;
        private DateTime _job_starttime;
        private int _job_state = 0;
        private DateTime _addtime;

        /// <summary>
        /// 主键
        /// </summary>
        public int Id { get => _id; set => _id = value; }
        /// <summary>
        /// 任务名称
        /// </summary>
        public string Job_Name { get => _job_name; set => _job_name = value; }
        /// <summary>
        /// 执行的方式的dll名称
        /// </summary>
        public string Job_Assembly { get => _job_assembly; set => _job_assembly = value; }
        /// <summary>
        /// 执行的方法类
        /// </summary>
        public string Job_Class { get => _job_class; set => _job_class = value; }
        /// <summary>
        /// 执行任务的corn表达式
        /// </summary>
        public string Job_Corn { get => _job_corn; set => _job_corn = value; }
        /// <summary>
        /// 任务类型,默认为1 简单,2 复杂
        /// </summary>
        public int Job_Type { get => _job_type; set => _job_type = value; }
        /// <summary>
        /// 任务的执行总次数,0表示无限次
        /// </summary>
        public int Job_Execount { get => _job_execount; set => _job_execount = value; }
        /// <summary>
        /// 任务开始时间
        /// </summary>
        public DateTime Job_Starttime { get => _job_starttime; set => _job_starttime = value; }
        /// <summary>
        /// 任务的状态 0 准备中,1 执行中,2 暂定,3 停止,4 结束
        /// </summary>
        public int Job_State { get => _job_state; set => _job_state = value; }
        /// <summary>
        /// 任务的创建时间
        /// </summary>
        public DateTime AddTime { get => _addtime; set => _addtime = value; }
    }

 接下来我们继续添加上下文对象

 public class DataDBContext : DbContext
    {
        //public DataDBContext(DbContextOptions<DataDBContext> options)
        //   : base(options)
        //{ }


        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseMySql("server=.;database=*****;User ID=***;Password=****");
        }


        public DbSet<QuartJobLog> QuartJobLogs { get; set; }
        public DbSet<QuartJobSchedule> QuartJobSchedules { get; set; }


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

            modelBuilder.Entity<QuartJobLog>(entity => {

                entity.ToTable("QuartJobLog");
                entity.HasKey(e => e.Id);
            });


            modelBuilder.Entity<QuartJobSchedule>(entity => {

                entity.ToTable("QuartJobSchedule");
                entity.HasKey(e => e.Id);
            });

           
        } 

    }

 接下来就是迁移数据库的操作了,这里我们用nuget 管理工具 导入 Pomelo.EntityFrameworkCore.MySql  ,Microsoft.EntityFrameworkCore.Tools,等VS操作完成之后,我们在nuget包管理控制程序输入

迁移命令,1.add-migration First_Migration,2.Update-Database  项目选择对应的,如果是类库的话就选择类库的项目

 生成成功后数据库中就有对应的表了

猜你喜欢

转载自www.cnblogs.com/Xty09/p/12492000.html