Можно ли работать с OrientDB с помощью С#?

Существуют ли какие-либо реализации, api или примеры OrientDB и С#. Причина, по которой я смотрю на OrientDB, - это единственное, что я нашел, это комбинация Graph и Document.

Любые предложения о том, как я должен это попробовать.

Мой следующий выбор - RavenDB, но я не уверен, поддерживает ли он соединения или связанные документы?

Любые мысли...

Ответ 2

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();
}

Ответ 3

В настоящее время OrientDB поддерживает как протокол REST/JSON, так и собственный бинарный протокол. Есть Python и Javascript-оболочки для протокола REST whyle существуют C и PHP-оболочки для собственного протокола. Я не знаю, работает ли оболочка С# в работе, но смотря на спецификации (http://code.google.com/p/orient/wiki/OrientDB_REST), написание одного для С# должно быть простым. Я лично встретил архитектора проекта на собрании JUG, и я должен сказать, что OrientDB - очень перспективный проект. Также Лука Гарулли (архитектор) является очень доступным человеком, поэтому вы можете написать ему, если вам нужна дополнительная информация.

Ответ 4

Что касается вашего второго вопроса о RavenDB, у него нет "объединений", как в реляционном смысле, но вы всегда можете хранить ссылки на другие документы, сохраняя его поле id документа. Вот вопрос вопрос в FAQ. Одно из предложений, которое они дают, - это денормализовать (хранить больше, чем просто идентификатор связанного документа), что может стать большим компромиссом.

Ответ 5

Недавно я встретил этот . Я еще не просмотрел код или использовал его, но он имеет интерфейсы .NET для:

  • BluePrints
  • Rexster
  • Трубы

    Эти утилиты могут использоваться для соединения с несколькими базами диаграмм Графика (те, которые позволяют BluePrints), включая neo4j и OrientDB. Для получения дополнительной информации см. TikerPop.