[英]checking for null value using dapper.net
我正在使用dapper將值讀入我在其中創建基本存儲過程的對象中。
IF EXISTS(SELECT LOWER(UT.UserID) FROM UserTable UT WHERE UT.UserID = @UserId)
BEGIN
SELECT
UT.UserID,
UT.Name,
UT.Surname,
UT.TrackingString
FROM UserTable UT
WHERE UT.UserID = @UserId
END
這是我的視圖模型中的代碼。
IDbConnection connection;
using (connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Liberty"].ToString()))
{
var result = connection.QueryMultiple("GetUserData", new { UserId = userId.ToLower() }, commandType: CommandType.StoredProcedure);
user = result.Read<UserData>().First();
}
如果選擇了列,如何檢查結果。.到目前為止,如果沒有用戶數據(如果用戶不存在),我將收到InvalidOperation異常。
使用正確的Linq方法。 您正在使用一個不將任何結果視為無效結果的查詢,而如果不存在這樣的用戶,則查詢可能不返回任何值。
切換到不會在枚舉返回中不引發任何元素的方法,然后檢查null並妥善處理。
// snip
user = result.Read<UserData>().FirstOrDefault();
}
if(user == null)
{
// no such user exists, go do something about it
為什么要使用QueryMultiple? 改用Query <>。 然后只需在result.first()之前執行result.Count()。 或者做FirstOrDefault()
我是否還建議您創建一個類來接收數據?
public class User
{
public int UserID {get; set;}
....
}
然后使用connection.Query(“ ....”,new ...)
眼睛好多了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.