我想在datagrid视图框中生成一个列表。我有userId, uId ,我想首先使用id搜索数据库中的用户,然后显示用户对应的用户名和角色名。我怎样才能做到这一点? 下面,我尝试使用UserId搜索用户,但由于我是新手,我知道括号后面的其余代码是不对的。我可以在语法上使用一些帮助。感谢
var list = _db.AspNetUserRoles.FirstOrDefault(w => w.UserId == uId)
{
w.AspNetUser.UserName,
w.AspNetRole.Name
});
dataGridView1.DataSource = list;
答案 0 :(得分:3)
使用Where
子句代替FirstOrDefault
,因为FirstOrDefault
返回序列的第一个元素。在Where
子句后,使用Select
创建一个包含UserName
和Name
属性的匿名类:
var list = _db.AspNetUserRoles.Where(w => w.UserId == uId).Select(w => new
{
UserName = w.AspNetUser.UserName,
Name = w.AspNetRole.Name
}).ToList();
dataGridView1.DataSource = list;
答案 1 :(得分:0)
正如lan Mercer所说,FirstOrDefault
首先返回或默认(单个) 值,如果您需要满足条件的元素列表,请使用{ {1}}。
where