0

如果语句中的条件匹配,我正在尝试使用实体来更新最多 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;
}

我得到的错误是 ongetprofile.firstnamegetprofile.lastname说 thebool不包含firstnameor的定义lastname。如果我把FirstorDefault()一切都很好,但当然它只会改变第一条记录......

如何更改许多记录?

4

2 回答 2

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()以更新数据库。

于 2013-01-14T20:49:07.510 回答
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();
于 2013-01-14T21:01:31.743 回答