包含和排除属性

将属性包含到模型中意味着 EF 将获得该属性的元数据,并且将尝试从数据库读取该属性的值或将该属性的值写入到数据库。

惯例

按照惯例,具有 getter 和 setter 访问器的公共(public)属性将被包含在模型中。

数据注解

可以使用数据注解将属性从模型中排除。

  1. public class Blog
  2. {
  3. public int BlogId { get; set; }
  4. public string Url { get; set; }
  5. [NotMapped]
  6. public DateTime LoadedFromDatabase { get; set; }
  7. }

流式 API

可以使用流式 API 将属性从模型中排除。

  1. class MyContext : DbContext
  2. {
  3. public DbSet<Blog> Blogs { get; set; }
  4. protected override void OnModelCreating(ModelBuilder modelBuilder)
  5. {
  6. modelBuilder.Entity<Blog>()
  7. .Ignore(b => b.LoadedFromDatabase);
  8. }
  9. }
  10. public class Blog
  11. {
  12. public int BlogId { get; set; }
  13. public string Url { get; set; }
  14. public DateTime LoadedFromDatabase { get; set; }
  15. }