繁体   English   中英

无法为此找到正确的linq查询

[英]Can't figure out the right linq query for this

我想在我的datagrid视图框中生成一个列表。 我有userId, uId ,我想首先使用ID在数据库中搜索用户,然后显示用户的相应用户名和角色名。 我怎样才能做到这一点? 在下面,我尝试使用UserId搜索用户,但是由于这是我的新手,我知道方括号后的其余代码不正确。 我可以在语法上使用一些帮助。 谢谢

var list = _db.AspNetUserRoles.FirstOrDefault(w => w.UserId == uId)
            {
                w.AspNetUser.UserName,
                w.AspNetRole.Name
            });

            dataGridView1.DataSource = list;

使用Where子句代替FirstOrDefault ,因为FirstOrDefault返回序列的第一个元素。 Where子句之后,使用Select来创建一个具有UserNameName属性的匿名类:

var list = _db.AspNetUserRoles.Where(w => w.UserId == uId).Select(w => new
            {
                UserName = w.AspNetUser.UserName,
                Name = w.AspNetRole.Name
            }).ToList();

dataGridView1.DataSource = list;

正如lan Mercer所说, FirstOrDefault返回第一个或默认(单个)值,如果您想要满足您提供的条件的元素列表,请使用where

var list = _db.AspNetUserRoles.Where(w => w.UserId == uId)
            {
                Uname = w.AspNetUser.UserName,
                Name = w.AspNetRole.Name
            });

            dataGridView1.DataSource = list;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM