Обновить документ в RavenDB - PullRequest
       17

Обновить документ в RavenDB

0 голосов
/ 30 августа 2010

Я использую 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)
{
..
}

указанный ответ здесь говорит, что есть команда PATCH для обновления документа.Но я не нашел этого в IDocumentSession классе в Raven's Client API

Я не хочу сначала получать документ, а затем обновлять его так, как это делается в примере MVCMusicStore RavenDB

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

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

1 Ответ

4 голосов
/ 30 августа 2010

Вам необходимо использовать код, подобный следующему:

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

См. эту тему в группе обсуждения для получения дополнительной информации

...