please use https://github.com/coronabytes/ArangoDB or https://github.com/Actify-Inc/arangodb-net-standard
.NETCoreApp 2.0 ArangoDB Client Driver
Contributions welcome.
For those who like to write pure AQL queries for ultimate flexibility. This will mainly focus on AQL string queries at first with convience methods for Insert, Update, Delete etc.
This client supports a managed foreign key feature. This allows an entity to include a List<T>
of another entity by setting a data annotation. This will work with two tables in the database but allow users to work the entity as if it was a single document. While this is duplicating some relational database features, this is the most common feature lacking in client libraries.
ArangoDB has an excellent join feature via AQL, and this is the next logical step on the client side. Please see the documentation for examples
This client manages connection pools. It has two connection pools, one for HTTP and one for VelocyStream(not implemented yet). All methods are Async and a connection is obtained immediatly before use and released immediatly afterwards. This is handled internally, so consumers won't need to worry about closing connections. Also, each HTTPClient object is left undisposed, but only used by one Database instance at a time. This cuts down on overhead of new connections but makes connection use consistent between the HTTP and yet to be implemented TCP protocols. Configurable to use the same HTTPClient for all connections, or differnt per connection.
Document Update (PATCH) now returns the Arango old revision and new document. Will probably make this configurable to save network traffic. An UpdatedDocument class is returned from the Client.DB().Update<T>(id, item)
method.
Method | Status | Foreign Key Support |
---|---|---|
AQL Query | Done | Manual |
GetByKeyAsync | Done | Auto |
UpdateAsync | Done | Auto |
DeleteAsync | Done | N/A |
InsertAsync | Done | Auto |
InsertManyAsync | Done | Auto |
GetAllAsync | Done | Auto |
GetAllKeysAsync | Done | N/A |
GetByExampleAsync | Done | Auto |
CreateCollection | Done | N/A |
Based loosely on ideas taken from ra0o0f and yojimbo87, this is a .NETCoreApp2 library.