C# efcore 控制台实例

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-05 23:16:47
   
   
    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();
            }
        }
    }
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!