正如标题所说,我们什么时候应该为一个实体声明一个 DbSet 类型的属性,通用指南?
最佳答案
没有一般准则。 DbSet<YourEntity>
的实例是您加载和持久化给定类型实体的访问点。如果您不在上下文类型上公开该属性,您仍然可以使用 dbContext.Set<YourEntity>()
即时创建它.
公开和不公开属性之间的唯一区别在于定义模型期间的实体发现。首次使用 EF 时,它会为定义的实体构建“模型”。通过以下方式发现实体:
- 在
DbModelBuilder
上明确定义的映射实例 - 在
DbModelBuilder
中明确注册的配置类型实例 -
DbSet<>
上下文类型中定义的属性 - 已发现实体引用的类型
所以如果你不使用 DbSet<>
您必须使用其他方法告诉 EF 关于您的实体的属性。
关于database - 我们什么时候应该将 DbSet 与 EF Code First 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13850131/