繁体   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