QueryFirstOrDefault

2022-04-21 09:43 更新

描述

QueryFirstOrDefault是一個可以從IDbConnection類型的任意對象調(diào)用的擴(kuò)展方法,它可以執(zhí)行查詢并映射第一個結(jié)果,如果序列不包含任何元素則為默認(rèn)值。

結(jié)果可以映射到:

  • 匿名類型
  • 強(qiáng)類型

參數(shù)

下表顯示了QueryFirstOrDefault方法的不同參數(shù)。

名稱 描述
sql 要執(zhí)行的查詢。
param 查詢參數(shù)(默認(rèn)為null)。
transaction 需要使用的事務(wù)(默認(rèn)為null)。
commandTimeout 命令執(zhí)行超時時間(默認(rèn)為null)。
commandType 命令類型(默認(rèn)為null)。

First, Single & Default

注意使用正確的方法。First和Single的方法是非常不同的。

結(jié)果 沒有項(xiàng) 有一項(xiàng) 有多項(xiàng)
First 拋異常 當(dāng)前項(xiàng) 第一項(xiàng)
Single 拋異常 當(dāng)前項(xiàng) 拋異常
FirstOrDefault 默認(rèn)值 當(dāng)前項(xiàng) 第一項(xiàng)
SingleOrDefault 默認(rèn)值 當(dāng)前項(xiàng) 拋異常

案例 - 查詢匿名類型

執(zhí)行查詢并將第一個結(jié)果映射到動態(tài)類型列表,如果序列不包含任何元素則為默認(rèn)值。

string sql = "SELECT * FROM Invoice WHERE InvoiceID = @InvoiceID;";

using (var connection = My.ConnectionFactory())
{
    connection.Open();

    var invoice = connection.QueryFirstOrDefault(sql, new {InvoiceID = 1});
}

案例 - 查詢強(qiáng)類型

執(zhí)行查詢并將第一個結(jié)果映射到強(qiáng)類型列表,如果序列不包含任何元素則為默認(rèn)值。

string sql = "SELECT * FROM Invoice WHERE InvoiceID = @InvoiceID;";

using (var connection = My.ConnectionFactory())
{
    connection.Open();

    var invoice = connection.QueryFirstOrDefault<Invoice>(sql, new {InvoiceID = 1});
}


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號