我的 SQL 查詢看起來像這樣,但是當我嘗試轉換 LINQ 時。我不能那樣做。
select case when Status = 0 then 'Pending'
when Status = 1 then 'Approved'
when Status = 2 then 'Denied' else '' end Status,
count(1) totalCount
from Client_BurnOuts group by Status
這里我有一個包含 3 個值的列舉,Pending、Approved 和 Denied。SQL 輸出很好,但我無法將其轉換為 SQL。
uj5u.com熱心網友回復:
假設,您當前的值為 0,這意味著狀態將是pending相應的linq,如下所示:
var statusCaseLinq = new List<Status>()
{
new Status(){ StatusName = "Accepted",StatusId =2},
};
var caseToLinq =
(
from n in statusCaseLinq
where n != null
select new
{
CaseId = n,
CaseSatus =
(
n.StatusId == 0 ? "Pending" :
n.StatusId == 1 ? "Accepted" :
n.StatusId == 2 ? "Denied" : "Unknown"
)
}
);
var getCaseStstusFromId = caseToLinq.FirstOrDefault().CaseSatus;
輸出:

uj5u.com熱心網友回復:
您可以將 case 陳述句轉換為 switch 運算式。
from o in Client_BurnOuts
group o by o.Status into g
select new
{
Status = g.Key switch
{
0 => "Pending",
1 => "Approved",
2 => "Denied",
_ => ""
},
totalCount = g.Count()
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/516890.html
標籤:C#sql林克asp.net 核心
上一篇:右連接不顯示“不完整”資料的條目
下一篇:如何在django中顯示查詢結果
