Jam*_*ees 3 c# entity-framework
我在使用 Entity Framework 6 更新记录时遇到了一些问题。
public bool UpdateOrder(Order order)
{
Db.Orders.Attach(order);
var entry = Db.Entry(order);
entry.Property(x => x.OrderStatusId).IsModified = true; //Exception thrown
try
{
Db.SaveChanges();
}
catch (Exception e)
{
logger.Fatal(e);
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
这是异常消息:
无法为属性“OrderStatusId”调用成员“IsModified”,因为上下文中不存在“Order”类型的实体。要将实体添加到上下文,请调用 DbSet 的 Add 或 Attach 方法。
我尝试更改entry.Property(x => x.OrderStatusId).IsModified = true;为entry.State = EntityState.Modified;
但我的记录没有得到更新。任何想法如何提供帮助?
抱歉,如果这很明显,但我是使用 EF 的新手,我找不到如何解决这个问题。
我通过以下方式修复它:
public bool UpdateOrder(Order order)
{
using(var db = DB){
db.Orders.Attach(order);
var entry = db.Entry(order);
entry.Property(x => x.OrderStatusId).IsModified = true; //Exception thrown
try
{
db.SaveChanges();
}
catch (Exception e)
{
logger.Fatal(e);
}
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5143 次 |
| 最近记录: |