C# efcore 控制台实例

简介: C# efcore 控制台实例
   
   
    public class DefaultDbContext : DbContext
    {
       public DefaultDbContext()
        {
        }

        public DbSet<User> Users { set; get; }

        public DbSet<UserDetail> UserDetails { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            string sqlConnection = "server=127.0.0.1;port=3306;user=root;password=123456;database=efcoredemo";
            optionsBuilder.UseMySql(sqlConnection);
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.ApplyConfiguration<User>(new UserConfiguration());
            modelBuilder.ApplyConfiguration<UserDetail>(new UserDetailConfiguration());
            base.OnModelCreating(modelBuilder);
        }
    }
    public class UserConfiguration : IEntityTypeConfiguration<User>
    {
        public UserConfiguration()
        {
        }

        public void Configure(EntityTypeBuilder<User> builder)
        {
            builder.ToTable("user");
            builder.HasIndex(q => q.IdCard).IsUnique();
            builder.HasOne(q => q.UserDetail).WithOne(q=>q.User).HasForeignKey<User>(q => q.userDetailId);
        }
    }

    public class UserDetailConfiguration : IEntityTypeConfiguration<UserDetail>
    {
        public UserDetailConfiguration()
        { 
        }

        public void Configure(EntityTypeBuilder<UserDetail> builder)
        {
            builder.ToTable("userdetail");
            builder.Property(q => q.Work).HasMaxLength(500);
        }
    }
    [Table("user")]
    public class User
    {
        [Key]
        public int Id { set; get; }

        [Required]
        public string IdCard { get; set; }

        [Column("sex")]
        public bool Sex { get; set; }

        [Column("name")]
        public string Name { set; get; }

        [Column("createTime")]
        public DateTime CreateTime { set; get; } = DateTime.Now;

        [Column("modifyTime")]
        public DateTime ModifyTime { set; get; } = DateTime.Now;

        [Column("userDetailId")]
        public int userDetailId { get; set; }

        public UserDetail UserDetail { get; set; }
    }
    [Table("userdetail")]
    public class UserDetail
    {
        [Key]
        public int Id { get; set; }

        [Column("email")]
        [StringLength(50)]
        public string Email { get; set; }

        [Column("phone")]
        [StringLength(20)]
        public string Phone { get; set; }

        [Column("note")]
        [StringLength(200)]
        public string Note { get; set; }

        [Column("lastLoginTime")]
        public DateTime LastLoginTime { get; set; }

        [Column("work")]
        public string Work { get; set; }

        public User User { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            using (DefaultDbContext db = new DefaultDbContext())
            {
                //db.Database.MigrateAsync();
                //db.Database.EnsureCreated();

                var list = db.Database.GetPendingMigrations();
                if (list.Count() > 0)
                {
                    db.Database.MigrateAsync();
                }
                //var user = new User { Name = "张三", Sex = false, IdCard = "513701199109121331" };
                //db.Users.Add(user);
                //db.SaveChanges();
                //System.Console.Write(db.Users.ToList());
                Console.ReadKey();
            }
        }
    }
目录
相关文章
|
缓存 C#
C# 操作路径(Path)类方法的使用与解析运行实例
C# 操作路径(Path)类方法的使用与解析运行实例
|
Java
往控制台打字(实例:游戏开局输入名字)
往控制台打字(实例:游戏开局输入名字)
208 0
|
数据采集 JSON API
C#网络爬虫实例:使用RestSharp获取Reddit首页的JSON数据并解析
C#网络爬虫实例:使用RestSharp获取Reddit首页的JSON数据并解析
|
5月前
|
存储 弹性计算 关系型数据库
如何通过控制台创建RDS MySQL实例
本文介绍了通过控制台创建RDS MySQL实例的详细步骤,包括准备工作、选择计费方式、地域、实例规格、存储空间等关键配置,并指导用户完成下单与实例查看。
|
开发框架 .NET C#
C# 一分钟浅谈:第一个 C# 控制台应用程序
【9月更文挑战第1天】C# 是一种现代化的、面向对象的编程语言,广泛应用于桌面应用、Web 应用和游戏开发等领域。本文详细介绍如何创建第一个 C# 控制台应用程序,包括使用 Visual Studio 和 .NET SDK 的步骤,并解析常见问题及其解决方法,如控制台窗口立即关闭、编译错误和运行时错误等。通过实践,你将掌握 C# 控制台应用的基础知识,为进一步学习打下坚实基础。
631 49
|
云安全 弹性计算 安全
云上攻防:实例元数据、控制台接管
随着企业上云趋势增强,云安全成为焦点。云服务提供高效的数据存储和计算能力,但也带来数据保护和访问控制的新挑战。攻击者常利用云服务漏洞,威胁企业数据安全。本文探讨云上攻防关键领域,如元数据泄露、AKSK安全、控制台接管等,提出防御措施,帮助企业应对云安全风险。
762 2
云上攻防:实例元数据、控制台接管
|
消息中间件 监控 数据可视化
【时序数据库InfluxDB】Windows环境下配置InfluxDB+数据可视化,以及使用 C#进行简单操作的代码实例
influxDB的官网下载地址 https://portal.influxdata.com/downloads/打开以后,如下图所示,可以选择版本号,以及平台。此处咱们选择windows平台。不过此处没有实际的可以下载的地方,着实比较过分,不过咱们可以另辟蹊径。
2549 0
【时序数据库InfluxDB】Windows环境下配置InfluxDB+数据可视化,以及使用 C#进行简单操作的代码实例
|
数据可视化 程序员 C#
C#中windows应用窗体程序的输入输出方法实例
C#中windows应用窗体程序的输入输出方法实例
307 0
|
弹性计算 安全 数据库
云上攻防-云服务篇&弹性计算&云数据库&实例元数据&控制角色&AK控制台接管
云上攻防-云服务篇&弹性计算&云数据库&实例元数据&控制角色&AK控制台接管
417 7
|
传感器 开发框架 JSON
聊聊 C# dynamic 类型,并分享一个将 dynamic 类型变量转为其它类型的技巧和实例
聊聊 C# dynamic 类型,并分享一个将 dynamic 类型变量转为其它类型的技巧和实例
718 0