在RavenDB中更新文档

时间:2010-08-30 12:00:45

标签: asp.net-mvc-2 ravendb

我正在使用asp.net MVC2。

我有一个定义为

的模型
public class Department
    {
        [ScaffoldColumn(false)]
        public object Id { get; set; }

        [Required(ErrorMessage = "Department Name is required")]
        [StringLength(25)]
        [DisplayName("Department Name")]
        public string Name { get; set; }

        [DefaultValue(true)]
        [DisplayName("Active?")]        
        public bool Active { get; set; }
    }

如何通过我的控制器更新现有的部门文档? 我的编辑操作定义为

[HttpPost]
public ActionResult Edit(string id, Department department)
{
..
}

答案陈述here告诉我有一个PATCH命令来更新文档。 但我没有在Raven的客户端API

中的IDocumentSession类中找到它

我不想先获取文档,然后像在RavenDB的MVCMusicStore示例中那样更新它

var albumModel = session.Load<Album>(id);
            //Save Album

            UpdateModel(albumModel, "Album");
            session.SaveChanges();

1 个答案:

答案 0 :(得分:4)

您需要使用以下代码:

DocumentStore.DatabaseCommands.Batch(
  new PatchCommandData{
        Key = "users/15",
        Patches = new [] {
            Type = "Set",
            Name = "Email",
            Value = "Ayende"
        }
   }
); 

有关详细信息,请参阅讨论组中的this thread