Awesome
Neo4jClient
A .NET client for Neo4j. Supports Cypher queries via fluent interfaces, and some indexing operations.
Grab the latest drop straight from the Neo4jClient
package on NuGet.
Read our wiki docs - Currently OUT OF DATE
Current Builds
The official Neo4jClient build and nuget package is automated via AppVeyor.
Stable 4.x
Version 4.0.0 of Neo4jClient is now the stable version. There have been a lot of changes, additions, removals, so it's likely there will be breaking changes.
Changing from 3.x to 4.x
This isn't an exhaustive list of things you need to do, but I'll try to add things if I've forgotten them.
Uris
You will need to use the correct URI for the server version you are connecting to:
GraphClient
- 3.x server:
http://localhost:7474/db/data
- 4.x server:
http://localhost:7474/
BoltGraphClient
- 3.x or 4.x server:
neo4j://localhost:7687
- Worth reviewing the Neo4j Documentation to see what you need to use.
Async
As this release is 100% async
you will need to update any calls to Results
or ExecuteWithoutResults
to their Async
equivalents.
Breaking Changes
- Async endpoints only
- To get this release out,
Neo4jClient
isAsync
only now.
- To get this release out,
- Transactions will no longer use the
TransactionScope
class which means that MSDTC will no longer work.- This has been an issue since the dawn of Core/NetStandard -
TransactionScope
may be in NetStandard now - but the other classes the Transaction code was relying on wasn't.
- This has been an issue since the dawn of Core/NetStandard -
- The
GraphClient
andBoltGraphClient
will no longer support Neo4j 3.4 or lower.- Largely this is because the
Neo4j.Driver
that does theBolt
side of things only targets 3.5+, and keeping all the backwards compatibility means a lot of work, for little gain.
- Largely this is because the
Dependency Changes
- Json.NET -
10.0.3
->12.0.3
- Neo4j.Driver.Signed -
1.7.2
->4.1.1
Historical Notes
If you're changing from 2.x
to 3.x
, you'll want the below information, but you should really be on 4.x
unless you have to target an older DB instance.
Changes in 3.x
- Bolt!
- Transactions now use
AsyncLocal<>
instead ofThreadStatic
- Transactions still don't work in the .NET Core version for the same reason as listed below (in
Breaking Changes in 2.0
) TransactionScope
does exist inNetStandard 2.0
- but some of the other bits surrounding the Transaction management doesn't.
- Transactions still don't work in the .NET Core version for the same reason as listed below (in
- JSON.NET updated to 10.0.3
PathResults
doesn't work with Bolt, you need to usePathResultsBolt
instead.
Dependency Changes in 2.0
- JSON.NET updated to 9.0.1
Breaking Changes in 2.0
- If using the DotNet Core version of
Neo4jClient
- transactions will not work. This will be returned when DotNet Core gets theTransactionScope
(See this comment for more details).
License Information
Licensed under MS-PL. See LICENSE
in the root of this repository for full license text.
Updates to the 3.x releases
I will not be updating the 3.x version of the client, the focus is on 4.x and the features that gives us. Neo4j no longer actively support Neo4j 3.4 so you should consider updating if you can. Largely - anyone using the 3.x
version of the client is coping with it's deficiencies, and as 4.x addresses most of them. ¯_(ツ)_/¯