Skip to content

Releases: DotNet4Neo4j/Neo4jClient

Detach Delete added

12 Nov 14:19
Compare
Choose a tag to compare

Added the ability to use DETACH DELETE via:

client.Match("n")
    .DetachDelete("n")
    .ExecuteWithoutResults();

Returns correct errors from 2.2.6+ versions of Neo4j

03 Nov 12:07
Compare
Choose a tag to compare

In 2.2.6 a change was made to make a transaction that had a ClientError automatically rollback, (see neo4j/neo4j#5806). When a client performed a rollback itself (as Neo4jClient does) this resulted in a 404 error due to the fact that the Transaction was no longer there.

This release returns Neo4jClient to acting the way it used to - by returning the actual error.

You will still get the 404 response but only if an actual Timeout has occurred.

Adds support for StartsWith

26 Oct 17:10
Compare
Choose a tag to compare

Users can now use the StartsWith method to create valid Cypher against a 2.3.0 db instance.

var query = gc.Cypher
    .Match("(n:Movie)")
    .Where((Movie n) => n.title.StartsWith("The"))
    .Return(n => n.As<Movie>());

Creates:

MATCH (n:Movie)
WHERE (n.title STARTS WITH 'The')
RETURN n

Fixes DateTime Bug

27 Oct 16:41
Compare
Choose a tag to compare

What bug? The client wasn't keeping the DateTime.Kind properly, now it does.
Ace.

JsonProperty is now taken into account for Cypher Parsing

17 Sep 14:54
Compare
Choose a tag to compare

If you describe a property in your class using the JsonProperty attribute Neo4jClient will take that into account when creating Cypher, for example, say you have created the default Neo4j Movies DB :play movies - and want to pull that into your .NET code, but would prefer to use .NET naming conventions (UpperCamelCase) - now you can!

Example

class Movie {
    [JsonProperty("title")]
    public string Title { get;set; }
    [JsonProperty("released")]
    public int Released { get;set; }
}

Neo4jClient will now pay attention to the JsonProperty attributes when sending data to Neo4j, as well as for deserializing back.

Planner is changeable

02 Sep 12:52
Compare
Choose a tag to compare

You can now set the Planner for a given query.

Usage:

client.Planner("IDP").Match(/*etc*/);
client.Planner(CypherPlanner.CostIdp).Match(/*etc*/);

Results in:

PLANNER IDP
MATCH //etc

Performance improvements

01 Sep 15:36
Compare
Choose a tag to compare

This adds minor improvements to the performance of the TransactionManager by removing some of the catch statements, and replacing with checks instead.

Auto-Deploy

01 Sep 13:04
Compare
Choose a tag to compare

Created by auto-build when checked in. No changes to the code, 1.1.0.6 and 1.1.0.5 are the same.

Custom JsonSerializers now work in Transactions

01 Sep 12:56
Compare
Choose a tag to compare

If you use custom JsonSerializers to get your objects into the DB - you need this release. The Transaction code didn't cope with custom JsonSerializers (partly due to being written before they were used) - now it does.

OperationCompleted - Raised on Complete!

01 Sep 12:59
Compare
Choose a tag to compare

OperationCompleted is now raised whenever an operation completes, regardless of any Exceptions thrown.