Код Neo4j.Driver не работает в консольном приложении .net 6, но работает в формах
Я пытаюсь назвать этоGetNotificationsCount()
функция как из приложения .Net 6 Forms, так и из консольного приложения.
public async Task<long> GetNotificationsCount()
{
var query = @"Match (p:Notification) RETURN count(p) as notificationCount";
var count = await _dataAccess.ExecuteReadScalarAsync<long>(query);
return count;
}
это в основном вызывает функцию ниже:
public async Task<T> ExecuteReadScalarAsync<T>(string query, IDictionary<string, object>? parameters = null)
{
try
{
parameters = parameters == null ? new Dictionary<string, object>() : parameters;
using (var session = _driver.AsyncSession(o => o.WithDatabase(_database)))
{
var result = await session.ExecuteReadAsync(async tx => // <-- ***Fails Here***
{
T scalar = default(T);
var res = await tx.RunAsync(query, parameters);
scalar = (await res.SingleAsync())[0].As<T>();
return scalar;
});
return result;
}
}
catch (Exception ex)
{
// **** Did not reach here either *****
_logger.LogError(ex, "There was a problem while executing database query");
throw;
}
}
Странная проблема, с которой я сталкиваюсь, заключается в том, что этот точно такой же код работает, когда я вызываю его за событием button_click() в форме, однако, когда я вызываю из консоли приложение функции main(), происходит сбой без каких-либо указаний или исключений.
Я используюNeo4j.Driver version 5.3.0
если это имеет значение
Кто-нибудь знает, почему это может происходить?