我正在尝试使用实体更新多达30条记录,如果语句中的条件匹配但我遇到问题,找到正确的方法,最后我使用的是这个
public ActionResult Edit(profile profile)
{
//change all records where getid== x.registrationID
var getprofile =
(from x in db.Articles where getid == x.RegistrationID select x).Any();
getprofile.firstname = profile.firstname;
getprofile.lastname = profile.lastname;
}
我得到的错误是getprofile.firstname
和getprofile.lastname
,说bool
不包含firstname
或lastname
的定义。如果我输入FirstorDefault()
一切正常,但当然只会改变第一条记录......
如何更改许多记录?
答案 0 :(得分:2)
您可以使用ToList()
获取Articles
:
List<Article> getprofiles = ( from x in db.Articles ... ).ToList();
foreach( Article getprofile in getprofiles )
{
getprofile.firstname = profile.firstname;
getprofile.lastname = profile.lastname;
}
db.SaveChanges();
查询数据库,获取匹配的Article
行并将它们放入集合中 - List<Article>
然后,您可以修改集合中的对象,最后调用db.SaveChanges()
来更新数据库。
答案 1 :(得分:0)
var objRD = objBS.Articles.Where(c => c.RegistratinID.Equals(getID));
if (objRD.Count() > 0)
{
foreach (ReportingData objR in objRD)
{
objR.firstname = profile.firstname;
objR.lastname = profile.lastname;
}
}
objBS.SaveChanges();