0

私はmvc3にデータベースの最初のアプリケーションを持っています。Ratingテーブルがあり、整数型のIDおよびValueプロパティがあります。カウントは常に5です。新しい値を入力し、それを評価の最後の要素に設定すると、すべての要素の値が要素の値の前に渡されます。値は最後から最初にずれています。

public ActionResult UpdateRating( int newValue )
{

var rating0 = db.Ratings.ElementAt( 0 );
var rating1 = db.Ratings.ElementAt( 1 );
var rating2 = db.Ratings.ElementAt( 2 );
var rating3 = db.Ratings.ElementAt( 3 );
var rating4 = db.Ratings.ElementAt( 4 );

rating0.Value = rating1.Value;
rating1.Value = rating2.Value;
rating2.Value = rating3.Value;
rating3.Value = rating4.Value;
rating4.Value = newValue ;

db.Ratings.Attach( rating0 );
db.ObjectStateManager.ChangeObjectState( rating0 , EntityState.Modified );
db.Ratings.Attach( rating1 );
db.ObjectStateManager.ChangeObjectState( rating1 , EntityState.Modified );
db.Ratings.Attach( rating2 );
db.ObjectStateManager.ChangeObjectState( rating2 , EntityState.Modified );
db.Ratings.Attach( rating3 );
db.ObjectStateManager.ChangeObjectState( rating3 , EntityState.Modified );
db.Ratings.Attach( rating4 );
db.ObjectStateManager.ChangeObjectState( rating4 , EntityState.Modified );
db.SaveChanges();
...
}

エラーdb.Ratings.ElementAt();が発生しました。ライン。この操作を行うにはどうすればよいですか?

4

1 に答える 1

2

と置換する

public ActionResult UpdateRating( int newValue )
{

List<Rating> ratings = db.Ratings.OrderBy(r => r.id)
                        .ToList();

ratings[0].Value = ratings[1].Value;
ratings[1].Value = ratings[2].Value;
ratings[2].Value = ratings[3].Value;
ratings[3].Value = ratings[4].Value;
ratings[4].Value = newValue;

db.SaveChanges();
}
于 2012-09-03T06:55:30.213 に答える