[英]Trying to connect Neo4j with ASP.NET Core
I'm having trouble connecting Neo4j with my ASP.NET Core Web App.我无法将 Neo4j 与我的 ASP.NET 核心 Web 应用程序连接起来。 I've installed Neo4j.Driver package, I've added
我已经安装了 Neo4j.Driver package,我已经添加
"NeO4jConnectionSettings": {
"Server": "bolt://localhost:7687",
"UserName":"neo4j",
"Password":"<password>"
}
into appsettings.json.进入 appsettings.json。 I also have
我也有
services.AddSingleton(GraphDatabase.Driver("bolt://localhost:7687", AuthTokens.Basic("neo4j", "<password>")));
in ConfigureServices method in Startup.cs .在Startup.cs的ConfigureServices方法中。 In Index.cshtml.cs I am runnning
在 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();
}
}
which returns no results.不返回任何结果。 What am I missing?
我错过了什么?
You have trouble connecting or you get no result?连接有问题或没有结果?
It seems like you're just getting an empty result.看起来你只是得到一个空的结果。 Looking at your query, I am pretty sure you're using the default Actors/Movies database set.
查看您的查询,我很确定您使用的是默认的演员/电影数据库集。 If so, the
Movie
entity doesn't contain a name
property.如果是这样,则
Movie
实体不包含name
属性。 You need to use title
.您需要使用
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>());
}
Also, as you're using Razor Pages , if you're using the default convention for method name handling, your GetAsync
method should be called OnGetAsync
/ OnGet
.此外,当您使用Razor Pages时,如果您使用方法名称处理的默认约定,则您的
GetAsync
方法应称为OnGetAsync
/ OnGet
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.