Dapper-Query2

描述

本章介绍查询的其他方法,包括有:

执行查询方法并返回映射结果

映射结果有:

  • 匿名对象
  • 强类型

参数

参数名 描述
sql 执行的sql命令脚本
param 执行命令的参数,默认为null
transaction 事务参数,默认为null
commandTimeout 命令超时时长,默认为null
commandType 命令类型,默认为null

QueryFirst | QueryFirstOrDefault | QuerySingle | QuerySingleOrDefault

返回结果 | 无结果 | 一个结果 | 多个结果
---|---|---|---|---
QueryFirst | 异常 | 一个结果 | 多个结果中第一个结果
QueryFirstOrDefault | 默认结果 | 一个结果 | 多个结果中第一个结果
QuerySingle | 异常 | 一个结果 | 异常
QuerySingleOrDefault | 默认结果 | 一个结果 | 异常

QueryFirst

执行查询并将第一个结果映射到匿名对象

string sql = "SELECT * FROM Invoice WHERE InvoiceID = @InvoiceID;";
var res = Rep.QueryFirst(sql, new { InvoiceID = 4 });

执行查询并将第一个结果映射到强类型对象

string sql = "SELECT * FROM Invoice WHERE InvoiceID = @InvoiceID;";
var res = Rep.QueryFirst<Invoice>(sql, new { InvoiceID = 4 });

QueryFirstOrDefault

执行查询并返回结果,若结果为空,则返回默认值,若返回多个结果,将抛出异常,若是单个结果,则映射给匿名对象或强类型对象

匿名对象

查询结果映射给匿名对象

string sql = "SELECT * FROM Invoice WHERE InvoiceID = @InvoiceID;";
var res = Rep.QueryFirstOrDefault(sql, new { InvoiceID = 4 });

强类型对象

查询结果映射给强类型对象

 string sql = "SELECT * FROM Invoice WHERE InvoiceID = @InvoiceID;";
var res = Rep.QueryFirstOrDefault<Invoice>(sql, new { InvoiceID = 4 });

QuerySingle

执行查询并返回结果,若结果为空或者返回多个结果,将抛出异常,反之映射给匿名对象或强类型对象

匿名对象

查询结果映射给匿名对象

string sql = "SELECT * FROM Invoice WHERE InvoiceID = @InvoiceID;";
var res = Rep.QuerySingle(sql, new { InvoiceID = 4 });

强类型对象

查询结果映射给强类型对象

    string sql = "SELECT * FROM Invoice WHERE InvoiceID = @InvoiceID;";
    var res = Rep.QuerySingle<Invoice>(sql, new { InvoiceID = 4 });

QuerySingleOrDefault

执行查询并返回结果,若结果为空或者返回多个结果,将抛出异常,反之映射给匿名对象或强类型对象

匿名对象

查询结果映射给匿名对象

string sql = "SELECT * FROM Invoice WHERE InvoiceID = @InvoiceID;";
var res = Rep.QuerySingleOrDefault(sql, new { InvoiceID = 4 });

强类型对象

查询结果映射给强类型对象

string sql = "SELECT * FROM Invoice WHERE InvoiceID = @InvoiceID;";
var res = Rep.QuerySingleOrDefault<Invoice>(sql, new { InvoiceID = 4 });

示例代码下载

posted @ 2018-10-03 12:54  山中自有人  阅读(609)  评论(0)    收藏  举报