QueryFirst
QueryFirst
是一个可以从IDbConnection
类型的任意对象调用的扩展方法,它可以执行查询并映射第一个结果。
结果可以映射到:
下表显示了QueryFirst
方法的不同参数。
名称 | 描述 |
---|---|
sql | 要执行的查询。 |
param | 查询参数(默认为null )。 |
transaction | 需要使用的事务(默认为null )。 |
commandTimeout | 命令执行超时时间(默认为null )。 |
commandType | 命令类型(默认为null )。 |
注意使用正确的方法。First
和Single
的方法是非常不同的。
结果 | 没有项 | 有一项 | 有多项 |
---|---|---|---|
First | 抛异常 | 当前项 | 第一项 |
Single | 抛异常 | 当前项 | 抛异常 |
FirstOrDefault | 默认值 | 当前项 | 第一项 |
SingleOrDefault | 默认值 | 当前项 | 抛异常 |
执行查询并将第一个结果映射到动态类型列表。
string sql = "SELECT * FROM Invoice WHERE InvoiceID = @InvoiceID;";
using (var connection = My.ConnectionFactory())
{
connection.Open();
var invoice = connection.QueryFirst(sql, new {InvoiceID = 1});
}
执行查询并将第一个结果映射到强类型列表。
string sql = "SELECT * FROM Invoice WHERE InvoiceID = @InvoiceID;";
using (var connection = My.ConnectionFactory())
{
connection.Open();
var invoice = connection.QueryFirst<Invoice>(sql, new {InvoiceID = 1});
}
QueryFirstOrDefault
QueryFirstOrDefault
是一个可以从IDbConnection
类型的任意对象调用的扩展方法,它可以执行查询并映射第一个结果,如果序列不包含任何元素则为默认值。
结果可以映射到:
下表显示了QueryFirstOrDefault
方法的不同参数。
名称 | 描述 |
---|---|
sql | 要执行的查询。 |
param | 查询参数(默认为null )。 |
transaction | 需要使用的事务(默认为null )。 |
commandTimeout | 命令执行超时时间(默认为null )。 |
commandType | 命令类型(默认为null )。 |
注意使用正确的方法。First
和Single
的方法是非常不同的。
结果 | 没有项 | 有一项 | 有多项 |
---|---|---|---|
First | 抛异常 | 当前项 | 第一项 |
Single | 抛异常 | 当前项 | 抛异常 |
FirstOrDefault | 默认值 | 当前项 | 第一项 |
SingleOrDefault | 默认值 | 当前项 | 抛异常 |
执行查询并将第一个结果映射到动态类型列表,如果序列不包含任何元素则为默认值。
string sql = "SELECT * FROM Invoice WHERE InvoiceID = @InvoiceID;";
using (var connection = My.ConnectionFactory())
{
connection.Open();
var invoice = connection.QueryFirstOrDefault(sql, new {InvoiceID = 1});
}
执行查询并将第一个结果映射到强类型列表,如果序列不包含任何元素则为默认值。
string sql = "SELECT * FROM Invoice WHERE InvoiceID = @InvoiceID;";
using (var connection = My.ConnectionFactory())
{
connection.Open();
var invoice = connection.QueryFirstOrDefault<Invoice>(sql, new {InvoiceID = 1});
}