我收到System.InvalidOperationException
错误,其中指出:
其他信息:无法呼叫会员'IsModified' 属性'state',因为'BatteryItem'类型的实体没有 存在于上下文中。要将实体添加到上下文,请调用Add或 附加DbSet的方法。
我没有这样做吗?这是我的方法:
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);
}
}
答案 0 :(得分:1)
从这些信息中你应该这样做:
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);
}
}
答案 1 :(得分:-1)
我通过首先调用EntityState.Modified
来修复它,然后禁用对属性的修改,如下所示:
db.Entry(obj).State = EntityState.Modified;
db.Entry(obj).Property(x => x.Password).IsModified = false;