簡體   English   中英

從Linq查詢中獲取結果

[英]Get result from Linq Query

我正在嘗試檢查IsAdmin是否為true,這是一個問題。 如果為true,則在gridview EditItemTemplate中選中一個復選框。

查詢是在gridview處於編輯模式下並且正在編輯的用戶已經是admin時。需要檢查checkBox是否為true,因為如果他們更新行並且未選中該復選框,則他們不再是admin。

我在想的是查詢應該能夠做到這一點。 但是不確定如何實現IsAdmin == true。

private void LoadGridEdit()
{
using (dbDataContext _db = new dbDataContext())
{
    var result = from u in _db.tbl_Users
                    where u.Deleted == false
                select new
                        {
                            u.UserId,
                            u.UserName,
                            u.Email,
                            u.IsAdmin,
                            u.tbl_ServiceArea.ServiceArea,
                        };

    if ()
    {
        //????   or foreach?
    }
    // Bind Here
}
}

我已經看過並嘗試了不同的選擇,但不確定。

您是否嘗試過在GridView模板中使用CheckBox,並將其Checked屬性設置為綁定到IsAdmin值,類似這樣:

<asp:CheckBox ID="chbIsAdmin" runat="server" Checked='<%# Bind("IsAdmin") %>' />

編輯:

抱歉,我剛剛讀到有關管理員意外刪除其特權的信息。 如果我在引導中,則不會發生這種情況。 管理員無法刪除自己的特權。 這樣可以確保至少有1個管理員。

此LinQ查詢將返回IEnumerable對象,您可以使用foreach語句枚舉它。

像這樣:

var result = _db.tbl_Users.Where(u=> u.Deleted == false).Select(e=> new
                    {
                        u.UserId,
                        u.UserName,
                        u.Email,
                        u.IsAdmin,
                        u.tbl_ServiceArea.ServiceArea,
                    }.ToList();

foreach(var res in result)
{
    if(res.IsAdmin)
    {
     // Do SOmething
    }
}

抱歉,但是我不喜歡類似sql的linq,所以我這樣寫。 希望對您有所幫助。

result將通過包含屬性IsAdmin對象返回IEnumerable 如果要對具有IsAdmin == true每個元素執行操作,請執行以下操作:

var resultsWithAdminIsTrue = from r in result
                             where r.IsAdmin
                             select r;

foreach (var r in resultsWithAdminIsTrue)
{
    /* Do action */
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM