本文将带领大家实现一个小案例程序,要求如下:实现一个程序,可以添加和修改。让我们开始吧!
新项目
我们将创建这个项目作为控制台应用程序。我们在 VS 中创建了一个名为 Rvn 的控制台应用程序。项目创建成功后,我们需要安装项目中的包。在b包管理中找到.并安装。完成这些步骤后,我们在代码的头部引入 ..。到这里我们就完成了第一步的代码。接下来,我们将通过创建实例并配置它来完成正确的链接工作。代码如下:
var store = new DocumentStore { Urls = new[] { "http://localhost:8080" }, Database = "Tasks" };
在上面的代码中,我们通过实例指定了节点和要链接的数据库的链接地址。目前,我们只需要这两个属性,我将在后续章节中解释其他属性。设置完成后,我们将在 . 我不会多说如何创建它。如果您不知道如何,请转到上一篇文章。
新的
由于需要操作实体类小程序云数据库开发实例,虽然说是使用了完全动态的数据库,但实际开发中大部分情况下都需要用到实体类。所以我们先定义实体类,代码如下:
public class ToDoTask { public string Id { get; set; } public string Task { get; set; } public bool Completed { get; set; } public DateTime DueDate { get; set; } }
接下来,让我们实现新功能。代码操作的过程其实和操作关系型数据库的过程是一样的:
打开会话;创建一个新的实体对象;将实体对象传递到会话中;执行保存操作;释放会话。
将上述步骤翻译成代码如下:
using (var session = store.OpenSession()) { var task = new ToDoTask { DueDate = DateTime.Today.AddDays(1), Task = "Buy milk" }; session.Store(task); session.SaveChanges(); }
在上面的代码中,首先打开了一个新会话并创建了一个新的实体对象。然后将任务存储在会话中,并调用一个方法将会话中的所有更改保存到 .

修订
修改后的实现代码与新增代码类似,代码如下:
using (var session = store.OpenSession()) { var task = session.Load("ToDoTasks/1-A"); task.Completed = true; session.SaveChanges(); }
注意,在开发中,除非有特殊情况,否则每次执行CURD都会执行该方法。大多数情况下,我们会在同一个 中的所有操作都执行完之后才采取执行方法。这里我们不用担心如果在中间有异常,只保存了部分数据。这时候因为有其他数据库没有的真实事务,要么全部保存成功,要么全部保存失败,不会出现部分成功或部分失败的情况。如果我们不修改数据,而是调用该方法,那么不会有数据提交到库中,这是因为客户端会检测到提交的数据与库中存储的数据相同,所以不会进行保存操作。