I have some old Powershell scripts that use the v1.7 driver. I am trying to move them to v4 but cannot seem to get the synchronous classes.
When I call Session() I am hitting the the Async implementation instead of the synchronous, even though I have loaded the Simple DLL.
Error:
Cannot find an overload for "Session" and the argument count: "0".
OverloadDefinitions
-------------------
Neo4j.Driver.Internal.IInternalAsyncSession, Neo4j.Driver, Version=4.2.37.0, Culture=neutral, PublicKeyToken=null Session(System.Action[Neo4j.Driver.SessionConfigBuilder] action, bool reactive)
Full sample code below:
param
(
[Parameter(Mandatory = $false)] [string] $boltUri = $env:BOLT_URI
, [Parameter(Mandatory = $false)] [string] $username = $env:BOLT_USERNAME
, [Parameter(Mandatory = $false)] [string] $password = $env:BOLT_PASSWORD
, [Parameter(Mandatory = $false)] [string] $query = @"
MATCH (g) RETURN g LIMIT 5
"@
)
$basePath = "$env:LOCALAPPDATA\PackageManagement\NuGet\Packages"
# Have to load assembly before you can reference it
# https://social.technet.microsoft.com/Forums/windowsserver/en-US/dff8487f-69af-4b64-ab83-13d58a55c523/addtype-inheritance-loaderexceptions?forum=winserverpowershell
Add-Type -LiteralPath "$basePath\neo4j.Driver.4.2.0\lib\netstandard2.0\Neo4j.Driver.dll"
Add-Type -LiteralPath "$basePath\Neo4j.Driver.Simple.4.2.0\lib\netstandard2.0\Neo4j.Driver.Simple.dll" -ReferencedAssemblies "$basePath\neo4j.Driver.4.2.0\lib\netstandard2.0\Neo4j.Driver.dll"
$authToken = [Neo4j.Driver.AuthTokens]::Basic($username,$password)
if(!($dbDriver = [Neo4j.Driver.GraphDatabase]::Driver($boltUri,$authToken)))
{
Write-Warning ("Could not establish session with {0}" -f $boltUri)
}
$session = $dbDriver.Session()
$r = $session.Run($query)
$session = $null
$dbDriver = $null