EF Core DbSet
DbSet<TEntity> 是某个实体类的集合,它是对实体进行数据库操作的网关。 DbSet<TEntity> 类作为属性添加到 DbContext,每一个属性都对应一个表。
csharp
public class MalemaDbContext : DbContext
{
public MalemaDbContext(DbContextOptions<MalemaDbContext> options)
: base(options)
{
this.Database.EnsureCreated();
}
//...其它的代码
public DbSet<Student> Students { get; set; }
}
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}在上面的代码中,我们有一个实体类是Student。 在MalemaDbContext当中有一个 Students属性。 因为我们有用了 this.Database.EnsureCreated(); 所以当我们的数据库还没有创建的时候。这个会帮我生成一个跟Student一样的表。 默认表名是复数形式 Students. Id 这个是一个约定。会被当作主键。
DbContext也有一个 Set<TEntity>()方法。这个也是返回一个 DbSet。 有一些人喜欢用 Repository的模式, 这个方法就很有用了。(个人感觉有蛮大的缺点)
