さて、私は Couchbase 2.0 と最新の .NET クライアントで作業しています。基本的に私が書いているのは、目標を追跡するためのプロジェクトです (美化された to-do リスト)...
私は目標オブジェクトをJSONドキュメントとしてcouchbase内に保存し、それを逆シリアル化してPOCOに戻すことができましたが、私の質問は、リンクされたドキュメントを自動的に検索してsubGoal List<Goal>に入力する方法です
この種の自動デシリアライゼーションが、コード自体の中でそれを処理するためのロジックなしで可能かどうかはわかりませんが、ポインタは高く評価されています, 乾杯!
JSON
{
id: "goal_1",
name: "goal 1",
description: "think of some better projects",
subGoals: [goal_2, goal_3]
}
C#
var goal = client.GetJson<Goal>(id);
return goal;
POCOはこちら
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Newtonsoft.Json;
namespace stuff.Models
{
public class Goal
{
protected DateTime _targetDate;
/// <summary>
/// Name of the goal
/// </summary>
[JsonProperty("name")]
public String Name { get; set; }
/// <summary>
/// Full description of the goal
/// </summary>
[JsonProperty("description")]
public String Description { get; set; }
/// <summary>
/// Target date for completing this goal
/// </summary>
[JsonProperty("targetDate")]
public DateTime? TargetDate
{
get
{
return _targetDate;
}
set
{
// target date must be later than any sub-goal target dates
}
}
/// <summary>
/// Any sub-goals
/// </summary>
[JsonProperty("subGoals")]
public List<Goal> SubGoals { get; set; }
/// <summary>
/// Constructor
/// </summary>
/// <param name="Name"></param>
/// <param name="Description"></param>
/// <param name="TargetDate"></param>
/// <param name="SubGoals"></param>
public Goal(String Name, String Description, DateTime? TargetDate = null, List<Goal> SubGoals = null)
{
this.Name = Name;
this.Description = Description;
this.TargetDate = TargetDate;
this.SubGoals = SubGoals;
}
}
}