3

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

4

1 回答 1

3

没有通用的指导方针。Instance ofDbSet<YourEntity>是您加载和持久化给定类型实体的访问点。如果您不公开上下文类型的属性,您仍然可以使用dbContext.Set<YourEntity>().

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

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

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

于 2012-12-13T09:02:07.180 回答