我有一個模型,使用字串作為鍵,而不是Id.
。public class Item
{
Key] [Key]
public string SerialNo { get; set; }
然而,我在保存時遇到了問題:
[]
[]
public ActionResult Edit(Item model)
{
if (ModelState.IsValid)
{
_db.Entry(model).State = EntityState.Modified。
_db.SaveChanges()。
return RedirectToAction("Index"/span>)。
}
return View(model);
}
當更新一條記錄并改變SerialNo值時,我得到的錯誤是:
。存盤更新、插入、或洗掉陳述句影響了一個意外的行數。物體可能已經被修改或洗掉,因為物體被加載。
uj5u.com熱心網友回復:
這個錯誤可能意味著以下一些事情:
這些是一些可能的情況。
我想留下評論,但我沒有名譽,所以我直接回答。
uj5u.com熱心網友回復:
像這樣的錯誤只發生在我編輯記錄和改變SerialNo欄位時
你不能在EF中更新鍵,而且無論如何你通常不應該更新主鍵。
如果你真的需要,你可以使用一個原始的SQL查詢,或者洗掉、SaveChanges()、插入。
uj5u.com熱心網友回復:
試試這個
existedItem = _db.Set<Item>().FirstOrDefault( i=> i.SerialNo == model.SerialNo ) 。
if (existenceedItem != null)
{
_db.Entry(existedItem).CurrentValues.SetValues(model)。
_db.SaveChanges()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/319275.html
標籤:
上一篇:有什么方法可以讓我在MVC中渲染控制器時將用戶資訊從cookie中設定為Session值?
下一篇:在瀏覽器中傳遞查詢字串的問題
