EF core的模型映射


在EF core里,可以通過實現IEntityTypeConfiguration來進行映射。

一、官網文檔

https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-2.0

二、示例(.net core控制台程序)

示例使用的數據庫是mysql

1、新建模型:

    public class Students
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public decimal Score { get; set; }
    }

2、實現IEntityTypeConfiguration

    public class StudentsMap : IEntityTypeConfiguration<Students>
    {
        public void Configure(EntityTypeBuilder<Students> builder)
        {
            builder.ToTable("Students");
            builder.HasKey(m => m.Id);
            builder.Property(m => m.Id).ValueGeneratedOnAdd();
            builder.Property(m => m.Name);
        }
    }

3、定義context

    public class SchoolContext : DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseMySql("Server=localhost;port=3306;database=test;uid=root;pwd=pwd;Convert Zero Datetime=True;", b => b.MaxBatchSize(30));
        }
        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);
            builder.ApplyConfiguration(new StudentsMap());
        }
    }

4、使用migrations遷移命令,得到數據庫。

5、測試添加數據

    class Program
    {
        static void Main(string[] args)
        {
            using (var _context = new SchoolContext())
            {
                var stu = new Students()
                {
                    Name = "test",
                    Score = 100
                };
                _context.Set<Students>().Add(stu);
                _context.SaveChanges();
            }
        }
    }

6、查看數據庫,數據已經插入:

 三、源碼

https://github.com/DavideYang125/efcore_map_demo


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM