我的表有两列CreatedByCreateTime。在我的 View 表单中,我没有这些字段。现在,当我使用ASP.NET MVC4 Edit(发布)方法更新记录时,这些列将设置为null。但我想保留这些值(value)观。我知道在我的Edit(发布)方法中,我可以从数据库中检索记录并手动进行设置。但是我想知道是否可以要求 Entity Framework 不要更改这些字段的值。

最佳答案

您必须在这里选择:

1)如@KennyZ所述,在您的 View 中的某处添加@Html.HiddenFor()到您的表单中:

@Html.HiddenFor(m => m.CreatedBy)
@Html.HiddenFor(m => m.createTime)

2)您可以手动更新该实体,并保留这两个属性:
var ent = dbctx.Entities.Find(model.ID);

ent.Prop1 = model.Prop1;
// ... also for other properties except those two property

dbctx.SaveChanges();

10-06 01:03