Ответ 1
Я только что разработал первую версию клиента REST для OrientDB. http://netorientdb.codeplex.com
Существуют ли какие-либо реализации, api или примеры OrientDB и С#. Причина, по которой я смотрю на OrientDB, - это единственное, что я нашел, это комбинация Graph и Document.
Любые предложения о том, как я должен это попробовать.
Мой следующий выбор - RavenDB, но я не уверен, поддерживает ли он соединения или связанные документы?
Любые мысли...
Я только что разработал первую версию клиента REST для OrientDB. http://netorientdb.codeplex.com
OrientDB имеет официальный двоичный драйвер для .NET. посмотрите здесь http://www.orientechnologies.com/docs/last/orientdb.wiki/Programming-Language-Bindings.html
Пример использования 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, так и собственный бинарный протокол. Есть Python и Javascript-оболочки для протокола REST whyle существуют C и PHP-оболочки для собственного протокола. Я не знаю, работает ли оболочка С# в работе, но смотря на спецификации (http://code.google.com/p/orient/wiki/OrientDB_REST), написание одного для С# должно быть простым. Я лично встретил архитектора проекта на собрании JUG, и я должен сказать, что OrientDB - очень перспективный проект. Также Лука Гарулли (архитектор) является очень доступным человеком, поэтому вы можете написать ему, если вам нужна дополнительная информация.
Что касается вашего второго вопроса о RavenDB, у него нет "объединений", как в реляционном смысле, но вы всегда можете хранить ссылки на другие документы, сохраняя его поле id документа. Вот вопрос вопрос в FAQ. Одно из предложений, которое они дают, - это денормализовать (хранить больше, чем просто идентификатор связанного документа), что может стать большим компромиссом.
Недавно я встретил этот . Я еще не просмотрел код или использовал его, но он имеет интерфейсы .NET для:
Трубы
Эти утилиты могут использоваться для соединения с несколькими базами диаграмм Графика (те, которые позволяют BluePrints), включая neo4j и OrientDB. Для получения дополнительной информации см. TikerPop.