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();
            }
        }
    }
目录
相关文章
|
11月前
|
缓存 C#
C# 操作路径(Path)类方法的使用与解析运行实例
C# 操作路径(Path)类方法的使用与解析运行实例
|
Java
往控制台打字(实例:游戏开局输入名字)
往控制台打字(实例:游戏开局输入名字)
49 0
|
数据采集 JSON API
C#网络爬虫实例:使用RestSharp获取Reddit首页的JSON数据并解析
C#网络爬虫实例:使用RestSharp获取Reddit首页的JSON数据并解析
|
1月前
|
云安全 弹性计算 安全
云上攻防:实例元数据、控制台接管
随着企业上云趋势增强,云安全成为焦点。云服务提供高效的数据存储和计算能力,但也带来数据保护和访问控制的新挑战。攻击者常利用云服务漏洞,威胁企业数据安全。本文探讨云上攻防关键领域,如元数据泄露、AKSK安全、控制台接管等,提出防御措施,帮助企业应对云安全风险。
云上攻防:实例元数据、控制台接管
|
2月前
|
开发框架 .NET C#
C# 一分钟浅谈:第一个 C# 控制台应用程序
【9月更文挑战第1天】C# 是一种现代化的、面向对象的编程语言,广泛应用于桌面应用、Web 应用和游戏开发等领域。本文详细介绍如何创建第一个 C# 控制台应用程序,包括使用 Visual Studio 和 .NET SDK 的步骤,并解析常见问题及其解决方法,如控制台窗口立即关闭、编译错误和运行时错误等。通过实践,你将掌握 C# 控制台应用的基础知识,为进一步学习打下坚实基础。
261 48
|
1月前
|
数据可视化 程序员 C#
C#中windows应用窗体程序的输入输出方法实例
C#中windows应用窗体程序的输入输出方法实例
46 0
|
3月前
|
传感器 开发框架 JSON
聊聊 C# dynamic 类型,并分享一个将 dynamic 类型变量转为其它类型的技巧和实例
聊聊 C# dynamic 类型,并分享一个将 dynamic 类型变量转为其它类型的技巧和实例
160 0
|
4月前
|
文字识别 自然语言处理 C#
印刷文字识别使用问题之C#发票识别的代码实例在哪里可以查看
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
5月前
|
弹性计算 安全 数据库
云上攻防-云服务篇&弹性计算&云数据库&实例元数据&控制角色&AK控制台接管
云上攻防-云服务篇&弹性计算&云数据库&实例元数据&控制角色&AK控制台接管
106 7
|
5月前
|
存储 IDE C#
C#入门:在JetBrains Rider中创建.Net Framework控制台应用程序,输出“Hello, World!”
C#入门:在JetBrains Rider中创建.Net Framework控制台应用程序,输出“Hello, World!”
647 0