我有一个与其他实体有关系的实体(TerminalCertification
)。
我想让用户能够更新TerminalCertification
,但我无法更新由用户更新的相关对象。我的更新代码在这里:
public void UpdateTerminalCertification(TerminalCertification terminalCertification)
{
var lastCertification = db.terminalCertifications.Find(terminalCertification.TerminalCertificationID);
if (lastCertification==null)
throw new TerminalCertificationNotFoundException(terminalCertification)
db.Entry(lastCertification).CurrentValues.SetValues(terminalCertification);
}
我搜索了stackoverflow并找到了下面的代码,但DBContext类中没有这样的ObjectStateManager。
ObjectStateManager stateMgr = db.ObjectStateManager;
ObjectStateEntry stateEntry = stateMgr.GetObjectStateEntry(model);
stateEntry.SetModified();
我该怎么办?
答案 0 :(得分:4)
您可以将DbContext转换为具有基础ObjectContext的IObjectContextAdapter,然后使用ObjectStateManager。
答案 1 :(得分:0)
在控制器中使用UpdateModel或TryUpdateModel方法。如果你在控制器之外这样做,那么这将不起作用。