什么时候应该将表的 DbSet 添加到 DbContext?如果一个实体类型没有 DbSet,但被另一个有 DbSet 的实体类型引用,那么两个表都会创建,并且一切如您所愿。
在您不使用的 DbContext 上拥有 DbSet 属性是否会产生任何开销?应该避免吗?如果没有 DbSet,是否存在无法可靠地跟踪实体更改的情况?
我在使用代码优先模型时发现的一个潜在的小问题是,如果您不为引用的实体类型添加 DbSet,则生成的表名称为单数名称。但是,如果您稍后添加具有复数名称的 DbSet(似乎是惯例),您将为表重命名生成迁移。
我在文档中找不到这方面的任何指导。
最佳答案
添加 DbSet
属性(property)给你DbContext
做两件事:
- 允许您使用
db.Customers
查询表(duh)而不是db.Set<Customer>()
.属性由 EF 初始化。 - 配置表名。它是
modelBuilder.Entity<Customer>().ToTable("Customers")
的简写(如您所见)请注意,EF 并未将名称复数化;你是。 ;)
它不会以其他方式影响 Entity Framework 。
关于.net - 何时将 DbSet 添加到 DbContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41945448/