什么时候应该为DbContext添加表的DbSet?如果实体类型没有DbSet但是从具有DbSet的另一个实体类型引用,则会创建两个表,并且按照您的预期工作。
在您不使用的DbContext上使用DbSet属性是否有任何开销?应该避免吗?是否存在无法在没有DbSet的情况下可靠地跟踪实体更改的情况?
我在使用代码优先模型时发现的一个潜在的小问题是,如果不为引用的实体类型添加DbSet,则使用单数名称生成表名。但是,如果稍后添加具有复数名称的DbSet(似乎是惯例),则将为表重命名生成迁移。
我在文档中找不到任何关于此的指导。
答案 0 :(得分:2)
向DbSet
添加DbContext
属性可以做两件事:
db.Customers
(duh)而非db.Set<Customer>()
查询表格。属性由EF初始化。modelBuilder.Entity<Customer>().ToTable("Customers")
的简写(正如您所发现的)注意,EF并不是多数名称;你是。 ;)它不会影响实体框架。