更新 RavenDB 中的文档

发布于 2024-09-16 16:26:02 字数 1036 浏览 7 评论 0原文

我正在使用 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 更新文档的命令。 但我在 Raven 客户端 API 的 IDocumentSession 类中没有找到这个,

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

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

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

I am using asp.net MVC2.

I have a model defined as

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

How to update an existing department document through my controller?
my edit action is defined as

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

answer stated here tells there is a PATCH command to update a document.
But i didn't find this in IDocumentSession class in Raven's Client API

I do not want to first get the document and then update it like the way it is done in RavenDB's MVCMusicStore example

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梅倚清风 2024-09-23 16:26:02

您需要使用如下代码:

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

请参阅此帖子讨论组了解更多信息

You need to use code like this:

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

See this thread on the discussion group for more info

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文