Mego开发文档 - 基础查询

基础查询

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

文档代码示例的模型都是基于测试用例所用的模型

加载所有数据

using (var db = new OrderManageEntitie())
{
    var list = db.Products.ToList();
}

加载单个数据

比较常用的方法,可以支持First()Single()ElementAt()

using (var db = new OrderManageEntit())
{
    var data = db.Products.FirstOrDefault();
}
using (var db = new OrderManageEntit())
{
    var data = db.Products.ElementAt(4);
}

汇总查询

using (var db = new OrderManageEntit())
{
    var data = db.Products.Count();
}

查询过滤

using (var db = new OrderManageEnti())
{
    var data = db.Products.Where(a => a.Name.Contains("P")).ToArray();
}

查询投影

using (var db = new OrderManageEntiti())
{
    var query = from a in db.Products
                select new
                {
                    a.Id,
                    a.Name
                };
    var data = query.ToList();
}

查询分页

using (var db = new OrderManageEntities())
{
    var data = db.Products.Take(10).Skip(20);
}

内连接查询

using (var db = new OrderManageEntities())
{
    var query = from a in db.Products
                join b in db.Customers on a.Id equals b.Id
                select new { a, b };
    var data = query.ToList();
}

左连接查询

using (var db = new OrderManageEntities())
{
    var query = from a in db.Products
                join b in db.Customers on a.Id equals b.Id into g
                from b in g.DefaultIfEmpty()
                select new { a, b };
    var data = query.ToList();
}

多查询连接

using (var db = new OrderManageEntities())
{
    var query = (from a in db.Customers
                 select new
                 {
                     a.Id,
                     a.Code,
                     a.Name
                 })
                .Concat
                (from b in db.Products
                 select new
                 {
                     b.Id,
                     b.Code,
                     b.Name
                 });
    var data = query.ToArray();
}

原文地址:https://www.cnblogs.com/CarefreeXT/p/8747747.html

时间: 2024-08-08 00:51:05

Mego开发文档 - 基础查询的相关文章

Mego开发文档 - 复杂查询

复杂查询 Mego 还支持一些更高级的LLINQ查询写法,本文只列出一部分. 分组汇总查询 using (var db = new OrderManageEntities()) { var query = from a in db.Products group a by a.Category into g select new { g.Key, Count = g.Count(), Max = g.Max(a => a.Id) }; var data = query.ToArray(); } 分

Mego开发文档 - 快速开始

Mego 快速开始 我们将创建一个简单的数据新增及查询来演示 Mego 的使用过程.演示中都是使用 Visual Studio 2017 作为开发工具,SQL Server 2012 作为数据库. 创建项目 首先我们先创建一个名为 MegoGetStarted 控制台项目,如下图所示. 安装Nuget包 从Visual Studio中的Nuget的包管理器中查找Caredev.Mego可以安装Mego如下图所示. 创建连接字符串 这一步需要确定连接数据库的连接字符串. <connectionSt

Mego开发文档 - 快速概述

Mego 快速概述 Mego 是一款轻量级,可扩展和跨平台的数据访问技术. Mego 是一个对象关系映射器(O / RM),它使.NET开发人员能够使用.NET对象处理数据库.它消除了开发人员通常需要编写的大部分数据访问代码的需求.Mego 支持多个数据库引擎,请参阅数据库提供者了解详细信息. 如果您想通过编写代码来学习,我们将推荐我们的入门指南之一,让您开始使用 Mego . 获取 Mego Mego 本身就支持多个数据库,不会发行特定数据库的版本.这里列举两种从Nuget上获取方法.在Vis

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

数据注释建模 Mego框架使用一组约定来基于CLR类来构建模型.您可以指定其他配置来补充或覆盖通过约定发现的内容. 在 Mego 中所有的数据对象必须要有主键.这里需要声明与EF不同的是框架只支持数据注释的语法来构建模型,在框架自动发现后,只有通过其他接口才能更改模型定义,我们使用一种简单直接的方式来声明,例如: public class Blog { [Key] public int BlogId { get; set; } public string Url { get; set; } }

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

基本保存操作 在Mego中没有更改跟踪,也就是说所有的新增.更新及删除都需要开发者自行判断.Mego会最为实际的将各个数据操作提交给数据库并执行. 添加数据 using (var db = new OrderManageEntities()) { db.Products.Add(new Product() { Id = 1, Name = "New Product", Code = "P1" }); db.Executor.Execute(); } 更新数据 usi

Mego开发文档 - 数据库建模

数据库建模 我们还提供了一些其他的特性,用于定制化数据库对应的数据结构. 表映射 框架默认会使用CLR类型名称做为实际数据库的表名,当两者不一致时可以使用该特性强制表名称. [Table("blogs")] public class Blog { public int BlogId { get; set; } public string Url { get; set; } } 列映射 框架默认会使用CLR属性名称做为实际数据库的列名,当两者不一致时可以使用该特性强制列名. public

安卓官方开发文档API GUIDE(1.1)Application Fundamentals 应用基础

Application Fundamentals Android apps are written in the Java programming language. The Android SDK tools compile your code-along with any data and resource files-into an APK: an Android package, which is an archive file with an .apk suffix. One APK

手机客户端接口开发文档模板整理

这是个人整理的手机开发文档模板,方便自己以后编写文档. 大体内容如下,详细在个人csdn中下载: 移动端转发短信上传温湿度信息 移动端负责后台接收温湿度传感器通过短信发来的温湿度和经纬度信息,移动端后台接收后上传web服务器,当然传感器也可通过wifi直接上传web服务器.返回小写true或者false. 请求URL: http://192.168.1.101:8080/RFID/addTransTemperature.action?phoneNumber=123&temperature=12.

软件开发文档

软件开发文档 软件开发文档是软件开发使用和维护过程中的必备资料.它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导,帮助,解惑的作用,尤其在维护工作中,文档是不可或缺的资料. 软件文档可以分为开发文档和产品文档两大类. 开发文档包括:<功能要求>.<投标方案>.<需求分析>.<技术分析>.<系统分析>.<数据库文档>.<功能函数文档>.<界面文档>.<编译手册>.< QA 文