我们什么时候应该使用带有EF Code First的DbSet

时间:2012-12-12 22:56:16

标签: database entity-framework-4 ef-code-first

正如标题所说,我们什么时候应该为实体声明DbSet类型的属性,一般指南?

1 个答案:

答案 0 :(得分:3)

没有一般指导方针。 DbSet<YourEntity>的实例是加载和持久化给定类型实体的访问点。如果您未在上下文类型中公开该属性,则仍可以使用dbContext.Set<YourEntity>()动态创建该属性。

在定义模型期间,公开和不公开属性之间的唯一区别在于实体发现。首次使用EF时,它会为已定义的实体构建“模型”。通过以下方式发现实体:

  • DbModelBuilder实例
  • 上明确定义的映射
  • DbModelBuilder实例
  • 中明确注册的配置类型 在上下文类型中定义的
  • DbSet<>属性
  • 已发现实体引用的类型

因此,如果您不使用DbSet<>属性,则必须使用其他方法告知EF您的实体。