簡體   English   中英

更新項目時,實體框架InvalidOperationException

[英]Entity Framework InvalidOperationException when updating an item

我收到一個System.InvalidOperationException錯誤,指出:

附加信息:不能為屬性“ state”調用成員“ IsModified”,因為上下文中不存在“ BatteryItem”類型的實體。 要將實體添加到上下文,請調用DbSet的Add或Attach方法。

我沒有完全做到這一點嗎? 那是我下面的方法:

public void UpdateBatteryState(BatteryItem batItem, BatteryState state)
{
    try
    {
        batItem.state = state.ToString();
        context.BatteryItem.Attach(batItem);
        var entry = context.Entry(batItem);
        entry.Property(x => x.state).IsModified = true;

        Save();
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
}

從該信息中,您應該這樣做:

public void UpdateBatteryState(BatteryItem batItem, BatteryState state)
{
    try
    {

        context.BatteryItem.Add(batItem);
        batItem.state = state.ToString();

        context.SaveChanges()
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
}

我先通過調用EntityState.Modified修復它,然后在此之后禁用對屬性的修改,如下所示:

db.Entry(obj).State = EntityState.Modified;
db.Entry(obj).Property(x => x.Password).IsModified = false;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM