如何解决尝试将 Neo4j 与 ASP.NET Core 连接
我在将 Neo4j 与我的 ASP.NET Core Web 应用程序连接时遇到问题。 我已经安装了 Neo4j.Driver 包,我已经添加了
"NeO4jConnectionSettings": {
"Server": "bolt://localhost:7687","UserName":"neo4j","Password":"<password>"
}
进入 appsettings.json。我也有
services.AddSingleton(GraphDatabase.Driver("bolt://localhost:7687",AuthTokens.Basic("neo4j","<password>")));
在Startup.cs 的ConfigureServices 方法中。在 Index.cshtml.cs 我正在运行
public class IndexModel : PageModel
{
private readonly IDriver _driver;
private readonly ILogger<IndexModel> _logger;
public string result;
public IndexModel(ILogger<IndexModel> logger,IDriver driver)
{
_logger = logger;
_driver = driver;
}
public async void GetAsync()
{
IResultCursor cursor;
var list = new List<String>();
IAsyncSession session = _driver.AsyncSession();
try
{
cursor = await session.RunAsync(@"MATCH (a:Movie)
RETURN a.name as name
limit 10");
list = await cursor.ToListAsync(record =>
record["name"].As<String>());
}
finally
{
await session.CloseAsync();
}
result = list.FirstOrDefault();
}
}
不返回任何结果。 我错过了什么?
解决方法
您无法连接或没有结果?
您似乎只是得到一个空结果。查看您的查询,我很确定您使用的是默认的演员/电影数据库集。如果是,则 Movie
实体不包含 name
属性。您需要使用 title
。
try
{
cursor = await session.RunAsync(@"MATCH (m:Movie)
RETURN m.title AS title
LIMIT 10");
list = await cursor.ToListAsync(record =>
record["title"].As<String>());
}
此外,当您使用 Razor Pages 时,如果您使用默认的方法名称处理约定,您的 GetAsync
方法应该被称为 OnGetAsync
/{ {1}}。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。