如何使用DbContext Set()而不是在上下文中公开?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (44)

在执行下列操作时,是否有任何不同之处:

public class UsersContext : DbContext
{
    public DbSet<User> Users { get; set; }
}

与使用Set<T>方法:

public class UsersContext : DbContext
{
}

var db = new UsersContext();
var users = db.Set<User>();

它们实际上是在做同样的事情,给我一组用户,但是除了您没有通过属性公开集合之外,还有什么其他的差别吗?

提问于
用户回答回答于

Users属性是为了方便添加的,因此您不需要记住所有表是什么以及对应的类是什么,您可以使用IntelliSense来查看上下文设计用于交互的所有表。最终结果在功能上等同于使用Set<T>

用户回答回答于

在使用代码优先迁移时,使用前一种方法可以获得好处,因为新的实体将自动被检测到。否则,我很肯定他们是等价物。

扫码关注云+社区