这是我的代码,
Name obj = new Name();
obj = DB.Names.Where(x => x.age == 20 ).SingleOrDefault();
我想要做的是使用Name
,
age=20
obj.Name = " Mr " + obj.Name ;
DB.SubmitChanges();
但是.SingleOrDefault()
只能返回一个值,我想用age=20
获取所有值。
答案 0 :(得分:5)
Where()
已经返回所有匹配的项目。您无需添加任何其他内容。试试这个:
foreach(var item in DB.Names.Where(x => x.age == 20 ))
{
item.Name = " Mr " + item.Name;
}
答案 1 :(得分:4)
DB.Names.Where(x => x.age == 20 )
会返回IEnumerable<Name>
,您可以使用foreach
进行迭代以修改每个条目。
答案 2 :(得分:1)
为什么使用SingleOrDefault
?试试这个:
var result = DB.Names.Where(x => x.age == 20).ToList()
答案 3 :(得分:1)
Where
将返回列表匹配条件
List<Name> nameList = DB.Names.Where(x => x.age == 20);
foreach(var name in nameList )
{
name.Name = " Mr " + name.Name ;
}
DB.SubmitChanges();
答案 4 :(得分:0)
但是.SingleOrDefault()只返回一个值,我想得到所有 年龄= 20岁。
是的,因此删除SingleOrDefault()
您将获得与条件匹配的所有记录
此外,您还可以尝试使用Foreach
更新从初始名称中过滤的每个项目。
尝试以下代码:
DB.Names.Where(x => x.age == 20 ).ToList().ForEach(n=>n.Name = " Mr " + n.Name);