一、示例用数据库为Northwind数据库,可在百度网盘下载

https://pan.baidu.com/s/1er0Mm48kUfeAsYkSW6DfnA 密码:r7pm

二、如何初始化SqlRepoEx请参看上一篇博文《轻量ORM-SqlRepoEx (二)初始化SqlRepoEx》

三、生成示例用类

public class Customers
{
#region 业务属性定义 public string CustomerID { get; set; } public string CompanyName { get; set; } public string ContactName { get; set; } public string ContactTitle { get; set; } public string Address { get; set; } public string City { get; set; } public string Region { get; set; } public string PostalCode { get; set; } public string Country { get; set; } public string Phone { get; set; } public string Fax { get; set; } #endregion
}

四、一个简单的Select调用

var repository = RepoFactory.Create<Customers>();

var results = repository.Query()

.Select(e => e.CustomerID, e => e.ContactName, e => e.CompanyName)

.OrderBy(e => e.CustomerID)

.Top(20)

.Go();

foreach (var item in results)

{

Console.WriteLine($"{item.CustomerID}\t {item.ContactName}\t\t {item.CompanyName} ");

}

得到如下结果:

	ALFKI    Maria Anders            Alfreds Futterkiste
ANATR Ana Trujillo Ana Trujillo Emparedados y helados
ANTON Antonio Moreno Antonio Moreno Taquería
AROUT Thomas Hardy Around the Horn
BERGS Christina Berglund Berglunds snabbk?p
BLAUS Hanna Moos Blauer See Delikatessen
BLONP Frédérique Citeaux Blondesddsl père et fils
BOLID Martín Sommer Bólido Comidas preparadas
BONAP Laurence Lebihan Bon app'
BOTTM Elizabeth Lincoln Bottom-Dollar Markets
BSBEV Victoria Ashworth B's Beverages
CACTU Patricio Simpson Cactus Comidas para llevar
CENTC Francisco Chang Centro comercial Moctezuma
CHOPS Yang Wang Chop-suey Chinese
COMMI Pedro Afonso Comércio Mineiro
CONSH Elizabeth Brown Consolidated Holdings
DRACD Sven Ottlieb Drachenblut Delikatessen
DUMON Janine Labrune Du monde entier
EASTC Ann Devon Eastern Connection
ERNSH Roland Mendel Ernst Handel

如果需要打印当前查询的SQL语句,而不是运行只需要调用Sql():

var results2 = repository.Query()

.Select(e => e.CustomerID, e => e.ContactName, e => e.CompanyName)

.OrderBy(e => e.CustomerID)

.Top(20)

.Sql();

得到如下结果:

SELECT TOP (20) [dbo].[Customers].[CustomerID]

, [dbo].[Customers].[ContactName]

, [dbo].[Customers].[CompanyName]

FROM [dbo].[Customers]

ORDER BY [dbo].[Customers].[CustomerID] ASC;

四、Select

1、实例一个查询实例的Repository

2、调用Repository 的Query() 获取一个查询类SelectStatement实例,此类实现大多数SQL查询场景;

3、SelectStatement有两个重要的方法

(1)、Sql()方法,此方法会返回当前repository.Query()的实际SQL语句;

(2)、Go()方法,此方法可将当前Select返回一个IEnumerable<TEntity>结果,另外,SelectStatement还实现了 ListEntityGo<TLEntity>()方法,返回一个List<TEntity>;

4、repository.Query()可简单的调用 repository.Query().Go(),这样会返回完整的实例集;其效果与repository.Query().SelectAll().Go();是一样的,但SelectAll()可以指定当前查询别名。、;

5、如果只需要返回数据集的部分字段数据,可以采用Select(e => e.CustomerID, e => e.ContactName, e => e.CompanyName)的表达示来获取特定列的数据;

轻量ORM-SqlRepoEx (三)Select语句的更多相关文章

  1. SqlSugar轻量ORM

      蓝灯软件数据股份有限公司项目,代码开源. SqlSugar是一款轻量级的MSSQL ORM ,除了具有媲美ADO的性能外还具有和EF相似简单易用的语法. 学习列表 0.功能更新 1.SqlSuga ...

  2. Dapper.NET——轻量ORM

    Dapper.NET使用 http://www.cnblogs.com/yankliu-vip/p/4182892.html 本文目录 Dapper.NET使用 1.为什么选择Dapper 2.以Da ...

  3. Dapper.NET—轻量ORM

    Dapper.NET使用 本文目录 Dapper.NET使用 1.为什么选择Dapper 2.以Dapper(4.0)为例. 2.1 在数据库中建立几张表. 2.2实体类. 3.使用方法 3.1  一 ...

  4. PL/SQL轻量版(三)——游标与异常处理

    一.游标 1.概念 游标是一个 指向上下文的句柄( handle) 或指针.通过游标,PL/SQL 可以控制上下文区和处理语句时上下文区会发生些什么事情. 2.游标处理 处理显式游标 主要包含以下四个 ...

  5. MySQL8.0关系数据库基础教程(三)-select语句详解

    1 查询指定字段 在 employee 表找出所有员工的姓名.性别和电子邮箱. SELECT 表示查询,随后列出需要返回的字段,字段间逗号分隔 FROM 表示要从哪个表中进行查询 分号为语句结束符 这 ...

  6. C# Dapper 轻量ORM调试对SQLServer

    Dapper简介 Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快. 使用ORM的好处是增.删.改很快,不用自己写sql,因为这都是重复技 ...

  7. 轻量ORM-SqlRepoEx (四)INSERT、UPDATE、DELETE 语句

    *本文中所用类声明见上一篇博文<轻量ORM-SqlRepoEx (三)Select语句>中Customers类 一.增加记录 1.工厂一个实例仓储 var repository = Rep ...

  8. 轻量ORM-SqlRepoEx介绍

    轻量级 ORM-SqlRepoEx 介绍 SqlRepoEx是 .Net平台下兼容.NET Standard 2.0人一个轻型的ORM.解决了Lambda转Sql语句这一难题,SqlRepoEx使用的 ...

  9. 轻量ORM-SqlRepoEx (九)与Dapper共舞

    Dapper就另一个轻量ORM,Dapper及其扩展解决了数据访问端的大部门问题,提供了如数据事务管理.缓存等支持.SqlRepoEx的重点解决了Lambda转换成SQL语句,使SQL使用强类型编写, ...

随机推荐

  1. 关于两个 IQueryable 合并

    原先根据需求要对数据进行两种筛选,起初写过滤条件,但是过滤后发现有的数据重叠.因此改为查询两次. 因为查询后返回的是两个相同的.匿名的 IQueryable ,最终的目的是想两个 类型结合成一个. 参 ...

  2. 关于“System.Data.ProviderIncompatibleException”类型的异常

    作为刚学习MVC的菜鸟,因为平常的不努力学习.看书,所以只能参考官方的教程学习操作新手入门 一步一步认真的做,前天晚上出现了一个关于数据库连接字符串错误的问题,自己查了很多资料, 问了许多大神,他们的 ...

  3. javascript统计一个字符在一段字符串出现次数

      <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" ...

  4. Web前端面试指导(九):盒子模型你是怎么理解的?

    问题分析 这道题问得比较宽泛,一定要找准切入点,如果切入点找不准,很容易乱答,甚至答偏,所以找准切入点是非常的重要的. 解答思路 1)盒子模型有两种,W3C和IE盒子模型 (1)W3C定义的盒子模型包 ...

  5. vue+mock.js+element-ui模拟数据搞定分页

    效果如图: 前提是搭好vue前端框架,npm install mockjs引入mock.js 当前页全部代码如下,其他有关element-ui的引入未提到,仅作参考用 <!-- 用户管理 --& ...

  6. js添加、修改、删除xml节点例子

    version="1.0" encoding="gb2312"?> . <bookstore> . <book genre=" ...

  7. 数组reduce和map方法

    1.有一个长度为100的数组,请以优雅的方式求出该数组的前10个元素之和 var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],sum ...

  8. mybatis3 step by step 快速上手

    作者:Panda Fang 出处:http://www.cnblogs.com/lonkiss/p/6895617.html 原创文章,转载请注明作者和出处,未经允许不可用于商业营利活动 官方网站 h ...

  9. hibernate 一览表

  10. Python——追加学习笔记(一)

    映射.字典 ## 映射类型内建函数 * dict Error: Python核心编程(第二版)p170 >>> dict([['x', 1], ['y', 2]]) {'y': 2, ...