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();
}
声明:一个新的技术或框架出现后还是需要时间的沉淀,我个人觉的至少需要半年以上的时间,所以请暂时不要将该框架应用到你觉的重要的系统中。不过也请大家可以多多试用,帮助Mego可以快速成长,感谢各位的问题及意见反馈。