我目前正在开发一个基于NoSQL(使用Raven DB)的应用程序。该应用程序的核心方面是树状数据结构,包括许多节点、子节点等。
目前,每个节点或子节点都由C#对象表示。在父节点上,使用子节点集合来建立父子关系,即一种仅向前的关系。
整个过程都由自定义表单处理,在Mvc应用程序中,对于每种数据类型,使用适当的GET和POST。整个图形存储为JSON在Raven DB上。
现在的目标是使用knockoutjs修改UI部分。由于KO也可以使用JSON数据结构,我想知道是否有一种方法可以使RavenDB JSON结构“兼容”knockout,这意味着我可以直接使用它,而不必创建KO特定结构(以实现可观察性等),然后在两者之间创建映射。
对象图的样本:
public class NodeA
{
public string Name {get;set;}
public List<SubNode> Childs {get;set;}
}
public class SubNode
{
public string Name {get;set;}
public bool SomeBool {get;set;}
}
public class NodeB
{
public string Name {get;set;}
public int SomeInt {get;set;}
}
public class GraphToStore
{
public List<NodeA> NodeAList {get;set;}
public List<NodeB> NodeBList {get;set;}
}
读/写部分仍将在服务器端处理,在UI更新后使用ajax调用。验证也将通过ajax调用从服务器端返回给客户端。我的问题就像我所说的,是让ravendb json与knockoutjs配合工作,否则我必须重构整个东西并进行映射,而且图形很大(50多个类)。