Mego开发文档 - 加载关系数据

加载关系数据

Mego允许您使用模型中的导航属性来加载相关数据对象。目前只支持强制加载数据对象。只有正确配置了关系才能加载关系数据,相关内容可参考关系配置文档。

加载对象属性

您可以使用该Include方法指定要包含在查询结果中的相关数据。在以下两个示例中,结果中返回的订单中会包含相应客户的数据填充到Customer属性中。

using (var db = new OrderManageEntiti())
{
    var data = db.Orders.Include(a => a.Customer).ToArray();
}
using (var db = new OrderManageEntiti())
{
    var data = db.Orders.Include(“Customer”).ToArray();
}

加载集合属性

此示例中将加载订单与订单相关的所有明细。

using (var db = new OrderManageEntiti())
{
    var data = db.Orders.Include(a => a.Details).ToArray();
}

加载数据并过滤

对加载的集合数据进行过滤,此示例中将加载订单与订单相关的所有价格大于100的明细。

using (var db = new OrderManageEntiti())
{
    var data = db.Orders.Include(a => a.Details.Where(a => a.Price > 100).ToArray();
}

多层级加载及过滤

using (var db = new OrderManageEntities())
{
    var query = db.Orders.Include(
        a => a.Details
            .Include(b => b.Product)
        ).ToArray();
}

加载关系数据及分页

using (var db = new OrderManageEntities())
{
    var query = db.Orders.Include(
        a => a.Details
            .Include(b => b.Product)
        ).Skip(5).Take(5).ToArray();
}

加载关系数据及聚合

当我们加载相关数据还希望对其进行聚合汇总运算。

using (var db = new OrderManageEntities())
{
    var query = from a in db.Orders.Include(a => a.Details)
                select new
                {
                    Order = a,
                    MaxId = a.Details.Max(m => m.Id)
                };
    var data = query.ToArray();
}

[文档目录]

posted @ 2018-04-08 22:09  CarefreeXT  阅读(202)  评论(0编辑  收藏  举报