zoukankan      html  css  js  c++  java
  • .net core EF 入门笔记Code First

    最近在写一个后台任务轮询的项目,了解下来最终选择了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  项目选择对应的,如果是类库的话就选择类库的项目

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

  • 相关阅读:
    Java学习8.17
    Java学习8.16
    Java学习8.15
    Java学习8.14
    Java学习8.13
    Java学习8.12
    Java学习8.11
    131. Palindrome Partitioning 回文串分割
    40. Combination Sum II 不允许使用重复元素
    39. Combination Sum 凑出一个和,可以重复用元素(含duplicates)
  • 原文地址:https://www.cnblogs.com/Xty09/p/12492000.html
Copyright © 2011-2022 走看看