Soruların listesini yeniden düzenlemek isterseniz, örneğin, son soruyu harekete geçirirseniz, yaptığım her şey önce anahtarın değeridir, ama bana öyle geliyor ki yanlış olduğunu ve kanıt bu iletiyi alırsınız: tip system.data.dll 'bir istisna EntityFramework.dll oluştu amaBirinci sınıf listeye atla
bilgiye kullanıcı kodu işlenmedi
: mülkiyet 'kimlik' bir parçasıdır Nesnenin önemli bilgileri ve değiştirilemez.
public ActionResult Up(int id , string st)
{
var qus = db.Qusetions.Find(id);
if(st == "up")
{
if(qus.ID != 1)
{
qus.ID = -1;
var qusup = db.Qusetions.SingleOrDefault(q => q.ID == q.ID - 1);
if (qusup != null)
{
qusup.ID = id;
}
}
}
if (st == "down")
{
qus.ID = +1;
var qusup = db.Qusetions.SingleOrDefault(q => q.ID == q.ID + 1);
if (qusup != null)
{
qusup.ID = id;
}
db.SaveChanges();
}
return RedirectToAction("Index", new RouteValueDictionary(new { controller = "Qustions", action = "Index", id = id }));
}
Sadece birincil anahtarınız için bir Id sütununda değişiklik yapmayın. Varlıkları sıralamak için kullanacağınız yeni bir SortIndex sütun ekleyin. Ardından, ihtiyacınız olan bu yeni özelliği değiştirin. – Lesmian
Yardımlarınız için teşekkür ederiz, ancak listeyi Sıralamayı İndeks – Sultan
db.Qusetions.SingleOrDefault (q => q.SortIndex == q.SortIndex - 1) ile sıralıyorum. Sadece mevcut sıralama düzenini tutacak başka bir alan tanıtın. Birincil anahtarınızın Kimlik değerlerini değiştiremezsiniz. – Lesmian