何时将DbSet添加到DbContext

时间:2017-01-30 21:08:46

标签: .net entity-framework-core

什么时候应该为DbContext添加表的DbSet?如果实体类型没有DbSet但是从具有DbSet的另一个实体类型引用,则会创建两个表,并且按照您的预期工作。

在您不使用的DbContext上使用DbSet属性是否有任何开销?应该避免吗?是否存在无法在没有DbSet的情况下可靠地跟踪实体更改的情况?

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

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

1 个答案:

答案 0 :(得分:2)

DbSet添加DbContext属性可以做两件事:

  1. 允许您使用db.Customers(duh)而非db.Set<Customer>()查询表格。属性由EF初始化。
  2. 配置表名。它是modelBuilder.Entity<Customer>().ToTable("Customers")的简写(正如您所发现的)注意,EF并不是多数名称;你是。 ;)
  3. 它不会影响实体框架。