加载关系数据

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开发文档 - 加载关系数据的更多相关文章

  1. Mego开发文档 - 索引

    Mego 开发文档 Mego 快速概述 主要特性 获取Mego 使用流程 模型 查询 保存数据 入门 Mego 快速开始 创建项目 安装Nuget包 创建连接字符串 创建模型及数据上下文(添加引用) ...

  2. Mego开发文档 - 基础查询

    基础查询 Mego 使用语言集成查询(LINQ)从数据库查询数据.LINQ允许您使用C#(或其他.NET语言)根据派生的上下文和实体类编写强类型查询.将LINQ查询的表示传递给数据库提供者,翻译为数据 ...

  3. Mego开发文档 - 保存关系数据

    保存关系数据 由于没有对象的更改跟踪,因此关系的操作需要开发者明确指定,在成功执行后Mego会影响到相应的关系属性中. 添加关系 在以下示例中如果成功执行则source的Customer属性会变为ta ...

  4. Mego开发文档 - 快速开始

    Mego 快速开始 我们将创建一个简单的数据新增及查询来演示 Mego 的使用过程.演示中都是使用 Visual Studio 2017 作为开发工具,SQL Server 2012 作为数据库. 创 ...

  5. Mego开发文档 - 基本保存操作

    基本保存操作 在Mego中没有更改跟踪,也就是说所有的新增.更新及删除都需要开发者自行判断.Mego会最为实际的将各个数据操作提交给数据库并执行. 添加数据 using (var db = new O ...

  6. Mego开发文档 - 数据注释建模

    数据注释建模 Mego框架使用一组约定来基于CLR类来构建模型.您可以指定其他配置来补充或覆盖通过约定发现的内容. 在 Mego 中所有的数据对象必须要有主键.这里需要声明与EF不同的是框架只支持数据 ...

  7. Mego开发文档 - 快速概述

    Mego 快速概述 Mego 是一款轻量级,可扩展和跨平台的数据访问技术. Mego 是一个对象关系映射器(O / RM),它使.NET开发人员能够使用.NET对象处理数据库.它消除了开发人员通常需要 ...

  8. Mego开发文档 - 建模高级主题

    建模高级主题 在建模过程中我们还有许多其他情况,这里列出本框架中的有用特性来用于解决此类问题. 函数映射 我们可以将指定的CLR函数映射到数据库中的系统函数或自定义函数,该特性用于补充框架中未提供的数 ...

  9. Mego开发文档 - 数据属性生成值

    数据属性生成值 该功能用于在数据插入或更新时为指定属性生成期望的值,Mego提供了非常灵活的实现方式以满足各种数据提交时的自动赋值问题. 生成值目的及模式 在Mego中生成值的目的一定是插入数据或更新 ...

随机推荐

  1. Several ports (8005, 8080, 8009)被占用

    启动Tomcat服务器报错: Several ports (8005, 8080, 8009) required by Tomcat v5.5 Server at localhost are alre ...

  2. windows7下django项目搭建

    参考视频教程 http://study.163.com/course/    http://www.bilibili.com/video/av8915600/   http://www.bilibil ...

  3. Maven 手动添加selenium JAR 包到本地仓库

    安装Maven后我们会在用户目录下发现.m2 文件夹.默认情况下,该文件夹下放置了Maven本地仓库.m2/repository. 在intellij中创建maven项目时,添加 selenium 依 ...

  4. springMvc(一)

    SpringMvc 1. 核心:DispatcherServlet 1.1作用:负责拦截请求并分派给相应的处理器处理 1.2配置DispatcherServlet(web.xml) 2.配置处理器映射 ...

  5. 如约而至,Java 10 正式发布!

    3 月 20 日,Oracle 宣布 Java 10 正式发布. 官方已提供下载:http://www.oracle.com/technetwork/java/javase/downloads/ind ...

  6. 正则表达式入门+实战(c#实现)

    如果有人和你说,如果不将字符串转换为数字,你要如何判断字符串是否由全数字组成?把字符串拆成char数组,然后放入一个循环,来判断每个char是否为数字?那你要如何判断手机号是否合法?IP是否合法呢?把 ...

  7. openstack的最简单安装

    环境:采用centos7.4,最低4g内存.大硬盘.内存小了会在安装过程中报错.整个过程大概2小时,看网速快慢,所有的节点和服务都安装在同一台机器上.   yum update -y yum inst ...

  8. 优先级队列用法详解(priority_queue)

    由于优先级队列的内部数据结构为 堆,所以这里先介绍堆的一些操作. 堆的一些函数操作在algorithm头文件中 //在[first, last)范围内构造最大堆,first,last 可以是vecto ...

  9. Mysql设置字段自动获取时间

    问题:现在在用户表中有一个字段表示用户创建的时间 第一个想法是写一段程序获得系统当前时间,想想就太麻烦了,果断放弃,之后想到了存储过程和函数,再想想还要编写存储过程或者函数的代码,有点放弃的想法,但是 ...

  10. Redis进阶实践之十九 Redis如何使用lua脚本

    一.引言               redis学了一段时间了,基本的东西都没问题了.从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运行在任何平台上,也可以嵌入 ...