【发布时间】:2009-05-22 20:04:39
【问题描述】:
此代码无法实际保存任何更改:
//
// POST: /SomeType/Edit/5
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Guid id, SomeType Model)
{
db.AttachTo(Model.GetType().Name, Model);
db.ApplyPropertyChanges(Model.EntityKey.EntitySetName, Model);
db.SaveChanges();
return RedirectToAction("Index");
}
ASP.NET MVC 将对象模型创建为 Department 类型的 EntityObject,EntityState 值为 Detached。
使用AttachTo方法后,其EntityState变为Unchanged。
MSDN on Attaching Objects (Entity Framework)
对象附加到对象 未更改状态的上下文。
由于它的 Unchanged 状态,ApplyPropertyChanges 方法什么都不做。
我希望它改为具有状态 Modified。
MSDN on EntityState Enumeration
独立
对象存在但未被对象跟踪 服务。实体处于此状态 创建后立即 在它被添加到对象之前 语境。一个实体也在这个 删除后的状态 通过调用分离上下文 方法,或者如果它是使用 NoTrackingMergeOption。不变
对象自加载后未被修改 上下文或自上次以来 SaveChanges 方法是 调用。修改
对象已更改,但 SaveChanges 方法未更改 被调用了。
我无法将 EntityObject 的 EntityState 属性显式设置为 Modified。它是只读的。
强类型 MVC 控制器与 EntityObjects 是不可能的吗?
【问题讨论】:
标签: c# .net asp.net asp.net-mvc entity-framework