ArangoDB .Net Client

An easy to use client library for ArangoDB with supporting: LINQ queries, change tracking, data streaming, asynchronous and synchronous api.

Install via nuget:

PM> Install-Package ArangoDB.Client

Source Code Documentation
Quick Sample:
                    
class Person
{
    [DocumentProperty(Identifier = IdentifierType.Key)]
    public string Key;
    public string Name;
    public int Age;
}

using (var db = new ArangoDatabase(url: "http://localhost:8529", database: "SampleDB"))
{
    ///////////////////// insert and update documents /////////////////////////

    var person = new Person { Name = "raoof hojat", Age = 26 };

    // insert new document and creates 'Person' collection on the fly
    db.Insert<Person>(person);

    person.Age = 27;

    // partially updates person, only 'Age' attribute will be updated
    await db.UpdateAsync<Person>(person);

    // returns 27
    int age =  db.Query<Person>()
                      .Where(p => AQL.Contains(p.Name, "raoof"))
                      .Select(p => p.Age)
                      .FirstOrDefault();
    
    /////////////////////// aql modification queries ////////////////////////////

    // remove products transactionally and return removed results
    var removedResults = db.Query<Product>().Where(p => p.Quantity == 0 ).Remove().ToList();
    
    // insert products to backup collection
    db.Query<Product>().Insert().In<ProductBackup>().Execute();

    ///////////////////////      simple join        /////////////////////////////
                             
    var query = from movie in db.Query<Movie>()
                from director in db.Query<Director>()
                where movie.DirectorKey == director.Key
                select new { movie.Title, director.Name };
}