EntityFramework Core 2.1重新梳理系列属性映射(一)

 

前言

满血复活啦,大概有三个月的时间没更新博客了,关于EF Core最新进展这三个月也没怎么去看,不知现阶段有何变化没,本文将以EF Core 2.1稳定版本作为重新梳理系列,希望对看本文的你有所帮助,欢迎一起探讨。(请不要嫌弃啰嗦哈,我习惯于将来龙去脉给大家梳理清楚,各种我能想到的场景给大家讲解明白)。

属性映射探讨

当我们利用Code First映射属性时,此时本身没有什么太大问题,但是当我们初始化表或者获取数据时等等,通过日志会发现打印出一些需要我们注意的地方,推荐我们使用最佳方式,对于属性探讨我们将着眼于进一步探讨日志中所打印的信息。我们依然利用两个类Blog和Post来探讨,大家也好对照着看。

复制代码
    public class Blog     {         public int Id { get; set; }         public string Name { get; set; }         public byte Status { get; set; }         public bool Deleted { get; set; }         public DateTime CreatedTime { get; set; }          public ICollection<Post> Posts { get; set; }     }      public class Post     {         public int Id { get; set; }         public int BlogId { get; set; }         public string Title { get; set; }         public string Content { get; set; }         public Blog Blog { get; set; }     }
复制代码

首先我们在映射时,不给定属性默认值以及映射列类型等,直接看看迁移时生成的列类型是怎样,然后我们再来进一步深入。对于关系映射还是建议手动配置一下,虽然EF Core也会通过约定来自动进行配置,但是手动配置便于理解,如下:

复制代码
        protected override void OnModelCreating(ModelBuilder modelBuilder)         {             modelBuilder.Entity<Blog>(b =>              {                 b.ToTable("Blogs");                  b.HasMany(m => m.Posts)                     .WithOne(o => o.Blog)                     .HasForeignKey(k => k.BlogId);             });              modelBuilder.Entity<Post>(b =>             {                 b.ToTable("Posts");             });         }
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信