Releases: DotNet4Neo4j/Neo4jClient
The supports Neo4j 4.x release
General
Neo4jClient
is now NetStandard 2.0, thanks to @tobymiller1 there is one project instead of 4, and things are back to being unified.- Transactions are now available in Core and Full framework (everywhere)
- Only Async
- Support for all URI schemes that Neo4j Accepts (
neo4j
,neo4j+s
,neo4j+sc
,bolt
)
Removals (most of these were marked as Obsolete)
Start
Create(string, params object[])
Return<T>(string, CypherResultMode)
StartBit
Mapper
Additions
WithDatabase
CreateDatabase
StartDatabase
StopDatabase
DropDatabase
Use
Show
WithQueryStats
Neo4jIgnoreAttribute
(via @Clooney24)
Breaking Changes
- Async only
- No MSDTC (TransactionScope) interaction
3.0.1 - NET 4.5.2 Supported again
Version 3.0.0 didn't support .NET 4.5.2, Version 3.0.1 does!
3.0.0 - Bolt Release!
We finally add Bolt to the Client!
In theory there is only one code change you need to do (assuming you're passing around IGraphClient
), from:
var client = new GraphClient(new Uri("http://localhost:7474/db/data"), "user", "pass");
to
var client = new BoltGraphClient(new Uri("bolt://localhost:7687"), "user", "pass");
Adds CustomHeaders to the Query
Allows a user to specify CustomHeaders to a query to enable you to further control the queries being sent.
client.Cypher.CustomHeaders(new NameValueCollection {{"key", "value"}})
Also includes the MaxExecutionTime
property to allow a user to define the execution time on a per query basis (in milliseconds):
client.Cypher.MaxExecutionTime(1000)
Adds 'ThenBy' and 'ThenByDescending' Methods
Now you can do:
.OrderByDescending("x").ThenBy("y")
Which will generate:
ORDER BY x, y DESC
OrderByDescending works for multiple elements
Previously doing .OrderByDescending("x", "y")
would generate ORDER BY x y DESC
Now it will generate ORDER BY x DESC y DESC
Makes NeoException Serializable
NeoException
is now serializable.
Uses CustomJsonConverters first for Deserializtion
First raised in Issue #136 - Neo4jClient
Serializes POCO classes using CustomJsonConverters
first, before using default. Deserialization used default, then custom.
This meant you could serialize something, but not be able to deserialize it.
Now custom serializers are used first for deserialization, default then following.
Where clauses sometimes still did Cypher 1.9 Null when against a 2+ DB
Some of the flows in .Where
were still suffixing properties with ?
, which is Cypher 1.9
. There was nothing in the generation to respect the capability detection.
Sends X-Stream header
Now for Neo4j instances > 1.8 the X-Stream
header is attached.