是否有使用C#编写的OrientDB实现、API或示例?我之所以关注OrientDB,是因为它是我发现的唯一结合图形和文档的数据库。
请问应该如何尝试使用它?
我的下一个选择是RavenDB,但我不确定它是否支持联接或链接文档?
您有什么想法吗?
OrientDB有一个官方的.NET二进制驱动程序
请在这里查看:http://orientdb.com/docs/3.0.x/
OrientDB-NET.binary使用示例:
string release = OClient.CreateDatabasePool("127.0.0.1", 2424, "ModelTestDB", ODatabaseType.Graph, "admin", "admin", 10, "ModelTestDBAlias");
using(ODatabase database = new ODatabase("ModelTestDBAlias"))
{
// prerequisites
database
.Create.Class("TestClass")
.Extends<OVertex>()
.Run();
OVertex createdVertex = database
.Create.Vertex("TestClass")
.Set("foo", "foo string value")
.Set("bar", 12345)
.Run();
}
目前,OrientDB支持REST / JSON协议和本机二进制协议。REST协议有Python和Javascript包装器,而本机协议有C和PHP包装器。我不知道是否正在使用C#包装器,但是根据规格(http://code.google.com/p/orient/wiki/OrientDB_REST),为C#编写一个应该很简单。我曾在JUG会议上见过该项目的架构师,必须说OrientDB是一个非常有前途的项目。此外,Luca Garulli(架构师)是一个非常可用的人,因此如果需要更多信息,您可以联系他。
关于您提出的 RavenDB 的第二个问题,它没有像关系型数据库中那样的“连接(join)”功能,但您可以通过存储其文档id字段来存储到其他文档的引用。这是该FAQ中有关连接问题的描述。其中之一建议是去规范化(存储与相关文档不仅仅是Id),然而这可能需要进行一次很大的权衡。