本篇文章将带领大家实现一个小的 RavenDB 案例程序,要求是这样的:实现一个 ToDoList 程序,可以对它进行新增、修改。下面我们开始吧!
我们将这个项目新建为控制台应用程序。我们在 VS 中创建一个名为 Rvn 的控制台应用程序。项目新建成功后,我们需要在项目中安装 RavenDB 的包。在 NuGet b包管理其中查找 RavenDB.Client 包并安装它。完成这些步骤之后,我们在 Program 代码的头部引入 Raven.Client.Documents 。
到这里我们已经完成了代码的第一步工作,下面我们将会通过创建一个 DocumentStore 实例并对其进行配置来完成对 RavenDB 的链接工作,代码如下:
var store = new DocumentStore
{
Urls = new[] { "http://localhost:8080" },
Database = "Tasks"
};
在上面的代码中我们通过 DocumentStore 实例指定了 RavenDB 节点的链接地址,以及要链接的数据库。目前我们只需要这两个属性就足够了,其他属性我将在后续的章节中讲解。设置完之后,我们在 RavenDB Studio 中创建 Tasks 数据库,具体怎么创建我就不多说了,有不会的小伙伴请去查看上一篇文章。
既然要操作 RavenDB 肯定就少不了实体类,虽然说 RavenDB 使用的是完全动态的数据库,但是在实际开发中大多数情况都需要使用实体类。因此我们先来定义一下实体类,代码如下:
public class ToDoTask
{
public string Id { get; set; }
public string Task { get; set; }
public bool Completed { get; set; }
public DateTime DueDate { get; set; }
}
接着我们来实现新增的功能,代码操作 RavenDB 的流程其实和操作关系型数据库的流程一样:
将上述步骤翻译成代码,如下所示:
using (var session = store.OpenSession())
{
var task = new ToDoTask
{
DueDate = DateTime.Today.AddDays(1),
Task = "Buy milk"
};
session.Store(task);
session.SaveChanges();
}
上面的代码中,首先打开新会话并创建了新的 ToDoTask 实体对象. 然后将任务存储在会话中并调用 SaveChanges 方法将会话中的所有更改保存到 RavenDB 中。
修改的实现代码和新增的代码类似,代码如下:
using (var session = store.OpenSession())
{
var task = session.Load<ToDoTask>("ToDoTasks/1-A");
task.Completed = true;
session.SaveChanges();
}