直观地说,DbContext 对应于您的数据库(或数据库中的表和视图的集合),而 DbSet 对应于数据库中的表或视图。因此,您将得到两者的结合是完全合理的!
您将使用 DbContext 对象来访问表和视图(将由 DbSet 表示),并且您将使用 DbSet 来访问、创建、更新、删除和修改表数据。
如果您的数据库中有 10 个表并且您的应用程序使用其中的 5 个(让我们称它们为 Table1 - Table 5),那么使用 MyAppContext 对象访问它是有意义的,其中 MyAppContext 类是这样定义的:
public class MyAppContext : DbContext
{
public MyAppContext () : ;
public DbSet<Table1> Table1 { get; set; }
public DbSet<Table2> Table2 { get; set; }
public DbSet<Table3> Table3 { get; set; }
public DbSet<Table4> Table4 { get; set; }
public DbSet<Table5> Table5 { get; set; }
}
请注意,例如,标识符 Table1 既用作类型的名称,也用作定义的上下文类型中的属性名称。你在上面看到的很典型。下面给出了对应于表模式的类的示例:
public class Table1
{
public int Id {get; set;}
public string AStringField {get; set;}
//etc.
}
在这里查看更多信息:http ://entityframeworktutorial.net/