mvc3使用实体来更新许多数据库记录

时间:2013-01-14 20:45:58

标签: c# asp.net-mvc-3 entity-framework updates

我正在尝试使用实体更新多达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.firstnamegetprofile.lastname,说bool不包含firstnamelastname的定义。如果我输入FirstorDefault()一切正常,但当然只会改变第一条记录......

如何更改许多记录?

2 个答案:

答案 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();