0
這是一個模型;ASP.NET MVC - 附加一個'X'類型的實體失敗
public class Urunler
{
public int UrunlerID { get; set; }
public virtual Urunler Urun { get; set; }
[NotMapped]
public List<int> SelectedEtiketIds { get; set; }
public virtual List<UrunEtiketTablo> Etiketler { get; set; }
}
這是一個代碼;
if (model.SelectedEtiketIds != null)
{
if (model.Etiketler != null)
{
if (model.Etiketler.Count > 0)
{
model.Etiketler.Where(i => !model.SelectedEtiketIds.Contains(i.UrunEtiket.EtiketID)).ToList().ForEach(i => model.Etiketler.Remove(i));
List<int> existlbl = model.Etiketler.Select(i => i.UrunEtiket.EtiketID).ToList();
db.Etikets.Where(i => model.SelectedEtiketIds.Except(existlbl).Contains(i.EtiketID)).ToList().ForEach(i => model.Etiketler.Add(new UrunEtiketTablo { UrunEtiket = i }));
}
else
{
db.Etikets.Where(i => model.SelectedEtiketIds.Contains(i.EtiketID)).ToList().ForEach(i => model.Etiketler.Add(new UrunEtiketTablo { UrunEtiket = i }));
}
}
else
{
model.Etiketler = db.Urunlers.Where(i => i.UrunlerID == model.UrunlerID).Select(i => i.Etiketler).FirstOrDefault();
db.Etikets.Where(i => model.SelectedEtiketIds.Contains(i.EtiketID)).ToList().ForEach(i => model.Etiketler.Add(new UrunEtiketTablo { UrunEtiket = i }));
}
}
else
{
if (model.Etiketler !=null && model.Etiketler.Count > 0)
{
model.Etiketler.Clear();
}
}
db.Entry(model).State = EntityState.Modified; //error line
}
db.SaveChanges();
return RedirectToAction("Urunler", "DaimiPanel");
當我將項目添加到電子郵件列表中時,出現此錯誤。
附加一個'Tasarito.Models.UrunEtiketTablo'類型的實體失敗,因爲另一個相同類型的實體已經具有相同的主鍵值。如果圖中的任何實體具有衝突的鍵值,則使用「附加」方法或將實體的狀態設置爲「未更改」或「已修改」時可能會發生這種情況。這可能是因爲一些實體是新的並且還沒有收到數據庫生成的關鍵值。在這種情況下,使用'Add'方法或'Added'實體狀態來跟蹤圖形,然後根據情況將非新實體的狀態設置爲'Unchanged'或'Modified'。
這是交叉表;
public class UrunEtiketTablo
{
public int UrunEtiketTabloID { get; set; }
public virtual Etiket UrunEtiket { get; set; }
}
我在哪裏可以犯錯? TY。
可能的重複。看到這個問題:http://stackoverflow.com/questions/23201907/asp-net-mvc-attaching-an-entity-of-type-modelname-failed-because-another-ent – Sabuncu
我看這個鏈接。但不是同樣的問題。我的模型通過「SelectedEtiketIds」創建並從視圖中獲得。 – Serkan
請看我在[ASP.NET MVC]上的回答 - 附加'MODELNAME'類型的實體失敗,因爲另一個相同類型的實體已經具有相同的主鍵值](http://stackoverflow.com/questions/ 23201907/ASP淨MVC附着-AN-實體的型MODELNAME失敗的 - 因爲-另一個-ENT/39557606#39557606)。 –