2010-08-30 8 views
0

J'utilise asp.net MVC2.Mettre à jour un document dans RavenDB

J'ai un modèle défini comme

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; } 
    } 

Comment mettre à jour un document de service existant par mon contrôleur? mon action d'édition est défini comme

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

réponse a déclaré here dit qu'il ya une commande PATCH de mettre à jour un document. Mais je ne trouve pas cela dans IDocumentSession classe dans l'API client Raven

Je ne veux pas d'abord obtenir le document, puis le mettre à jour comme la façon dont il est fait dans MVCMusicStore l'exemple de RavenDB

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

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

Répondre

4

Vous besoin d'utiliser le code comme ceci:

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

Voir this thread sur le groupe de discussion pour plus d'informations

+0

Merci. J'ai également essayé de définir l'identifiant qui a été généré automatiquement par RavenDB, puis de stocker le document dbSession.Store (département). Cela a fonctionné aussi! –

Questions connexes