实体上下文


  这和 Entity Framework 里面的 DbContext 比较类似,只是在 Fireasy 里叫作 EntityContext。在 Entity Framework,属性的类型是 DbSet<T>,而在 Fireasy 中是 EntityRepository<T>,它与每一个实体类相对应。

  EntityContext 是一个核心的类,它是实体类与数据库之间的桥梁。每一个 EntityRepository<T> 均与一个数据表相对应,负责数据的持久化工作,即新增、修改、删除、查询。以下是一个 EntityContext 的示例:

public class DbContext : EntityContext
{
    public EntityRepository<Products> Products { get; set; }

    public EntityRepository<Categories> Categories { get; set; }

    public EntityRepository<Customers> Customers { get; set; }

    public EntityRepository<Orders> Orders { get; set; }

    public EntityRepository<OrderDetails> OrderDetails { get; set; }
}

  这些属性会在 EntityContext 构造函数执行时自动初始化,因而你不必担心它会为 null。

  EntityRepository<T> 类实现了 IQueryable<T> 接口,因此它可以使用 System.Linq.Queryable 的扩展方法,比如 Where、Select、OrderBy 等等,详细的用法可参考 使用 lambda 表达式查询。同时 EntityRepository<T> 还拥有特有的 Insert、Update、Delete 方法。