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;
}

私が得るエラーはオンでgetprofile.firstnameあり、 にはまたはの定義が含まれていませgetprofile.lastnameん。私がすべてを入れればうまくいきますが、もちろんそれは最初のレコードだけを変更します...boolfirstnamelastnameFirstorDefault()

多くのレコードを変更するにはどうすればよいですか?

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 に答える