Releases: DotNet4Neo4j/Neo4jClient
Detach Delete added
Added the ability to use DETACH DELETE
via:
client.Match("n")
.DetachDelete("n")
.ExecuteWithoutResults();
Returns correct errors from 2.2.6+ versions of Neo4j
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
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
What bug? The client wasn't keeping the DateTime.Kind properly, now it does.
Ace.
JsonProperty is now taken into account for Cypher Parsing
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
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
This adds minor improvements to the performance of the TransactionManager
by removing some of the catch
statements, and replacing with checks instead.
Auto-Deploy
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
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!
OperationCompleted
is now raised whenever an operation completes, regardless of any Exceptions
thrown.