.net 何时将数据库集添加到DbContext

.net 何时将数据库集添加到DbContext,.net,entity-framework-core,.net,Entity Framework Core,什么时候应该将表的DbSet添加到DbContext?如果一个实体类型没有DbSet,但从另一个实体类型引用,而该实体类型确实有DbSet,那么这两个表都将被创建,并且按照您的预期工作 在DbContext上有没有与DbSet属性相关的开销而您不使用?应该避免吗?是否存在没有数据库集就无法可靠跟踪实体更改的情况 在使用代码优先模型时,我发现一个潜在的小问题是,如果不为引用的实体类型添加DbSet,那么表名将使用单数名生成。但是,如果稍后添加一个具有复数名称的DbSet(这似乎是惯例),则将生成表

什么时候应该将表的DbSet添加到DbContext?如果一个实体类型没有DbSet,但从另一个实体类型引用,而该实体类型确实有DbSet,那么这两个表都将被创建,并且按照您的预期工作

在DbContext上有没有与DbSet属性相关的开销而您不使用?应该避免吗?是否存在没有数据库集就无法可靠跟踪实体更改的情况

在使用代码优先模型时,我发现一个潜在的小问题是,如果不为引用的实体类型添加DbSet,那么表名将使用单数名生成。但是,如果稍后添加一个具有复数名称的DbSet(这似乎是惯例),则将生成表重命名的迁移


我在文档中找不到任何关于这方面的指导。

DbSet
属性添加到
DbContext
中有两个作用:

  • 允许您使用
    db.Customers
    (duh)而不是
    db.Set()
    查询表。属性由EF初始化
  • 配置表名。它是modelBuilder.Entity().ToTable(“客户”)(如您所见)的简写。注意,EF并没有将名称复数化;你是……) 否则它不会影响实体框架