我想更新与下面的代码的特定部分:更新Orchard中ContentItem的正确方法是什么?
var nationalPart = _contentManager.Get<NationalPart>(Id);
nationalPart.Name = part.Name;
我已经做了this.but现在它不是working.even我打电话contentManager.Flush()
明确,但仍没有运气。谁能帮我这个? 在此先感谢。
编辑:我发现我的问题来自哪里! 当我做一个JSON请求来更新一个contentPart.the在内存中的版本正在更新,但它不反映结果db.now我们离答案更近一步。但什么是阻止会话更新数据库?
EDIT2:
这是对我的处理程序代码:
public NationalPartHandler(IRepository<NationalPartRecord> repository)
{
Filters.Add(StorageFilter.For(repository));
}
这是控制器动作代码:
[GridAction(EnableCustomBinding = true)]
public JsonResult UpdateNational(NationalViewModel Model, GridCommand Command)
{
if (!ModelState.IsValid)
return new JsonResult { Data = "error" };
var NationalPart = _contentmanager.Get(Model.Id).As<NationalPart>();
NationalPart.Record = new NationalPartRecord();
NationalPart.Record.MapFrom<NationalPartRecord, NationalViewModel>(Model);
_soccerService.UpdateNational(NationalPart);
return NationalsListJson(Command);
}
终于代码服务:
public void UpdateNational(NationalPart part)
{
var nationalPart = _contentManager.Get<NationalPart>(part.Id);
nationalPart.Name = part.Name;
_contentManager.Flush();
}
您是否记得让您的零件属性setter在您的记录类中设置属性的值?我以前已经忘记了这一点。 –
如果它不起作用,您可能会在某处回滚事务。检查app_data \ logs。 –
@BertrandLeRoy我有双重检查日志目录。但它是空的(没有错误)。 –