Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试将Neo4j与ASP.NET Core连接_C#_Asp.net Core_Neo4j - Fatal编程技术网

C# 尝试将Neo4j与ASP.NET Core连接

C# 尝试将Neo4j与ASP.NET Core连接,c#,asp.net-core,neo4j,C#,Asp.net Core,Neo4j,我无法将Neo4j与我的ASP.NET核心Web应用程序连接。 我已经安装了Neo4j。驱动程序包,我补充道 "NeO4jConnectionSettings": { "Server": "bolt://localhost:7687", "UserName":"neo4j", "Password":"<password>"

我无法将Neo4j与我的ASP.NET核心Web应用程序连接。 我已经安装了Neo4j。驱动程序包,我补充道

"NeO4jConnectionSettings": {
  "Server": "bolt://localhost:7687",
  "UserName":"neo4j",
  "Password":"<password>"     
  }
“NeO4jConnectionSettings”:{
“服务器”:bolt://localhost:7687",
“用户名”:“neo4j”,
“密码”:”
}
输入appsettings.json。我也有

services.AddSingleton(GraphDatabase.Driver("bolt://localhost:7687", AuthTokens.Basic("neo4j", "<password>")));
services.AddSingleton(GraphDatabase.Driver(“bolt://localhost:7687,AuthTokens.Basic(“neo4j”,即“);
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();
    }
}
公共类索引模型:PageModel
{
专用只读IDriver\u驱动程序;
专用只读ILogger\u记录器;
公共字符串结果;
公共索引模型(ILogger记录器、IDriver驱动程序)
{
_记录器=记录器;
_司机=司机;
}
公共异步void GetAsync()
{
iResult光标;
var list=新列表();
IAsyncSession会话=_driver.AsyncSession();
尝试
{
cursor=wait session.RunAsync(@)匹配(a:Movie)
将a.name作为name返回
限额(10”);
列表=等待光标。ToListSync(记录=>
记录[“名称”].As());
}
最后
{
等待会话。CloseAsync();
}
结果=list.FirstOrDefault();
}
}
它不会返回任何结果。
我遗漏了什么?

您的连接有问题或没有结果

看起来你只是得到了一个空的结果。查看您的查询,我非常确定您使用的是默认的Actors/Movies数据库集。如果是,则
电影
实体不包含
名称
属性。您需要使用
标题

try
{
    cursor = await session.RunAsync(@"MATCH (m:Movie)
        RETURN m.title AS title
        LIMIT 10");

    list = await cursor.ToListAsync(record =>
    record["title"].As<String>());
}
试试看
{
cursor=wait session.RunAsync(@)匹配(m:Movie)
返回m.title作为title
限额(10”);
列表=等待光标。ToListSync(记录=>
记录[“title”].As());
}

另外,当您使用Razor Pages时,如果您使用默认的方法名称处理约定,您的
GetAsync
方法应该被称为
OnGetAsync
/
OnGet

您连接有问题还是没有结果

看起来你只是得到了一个空的结果。查看您的查询,我非常确定您使用的是默认的Actors/Movies数据库集。如果是,则
电影
实体不包含
名称
属性。您需要使用
标题

try
{
    cursor = await session.RunAsync(@"MATCH (m:Movie)
        RETURN m.title AS title
        LIMIT 10");

    list = await cursor.ToListAsync(record =>
    record["title"].As<String>());
}
试试看
{
cursor=wait session.RunAsync(@)匹配(m:Movie)
返回m.title作为title
限额(10”);
列表=等待光标。ToListSync(记录=>
记录[“title”].As());
}

另外,当您使用Razor Pages时,如果您使用默认的方法名称处理约定,您的
GetAsync
方法应该被称为
OnGetAsync
/
OnGet

不,我已经创建了自己的数据库。在Neo4j浏览器中运行“MATCH(a:Movie)RETURN a.name as name limit 10”将返回我想要的结果。在上面的示例中,我使用@Model.result在Index.cshtml中显示了我的“result”变量,它是空的。“list”变量在执行查询并耗尽光标后是否填充了任何数据,发布你的电影实体的模式。@MilošVeljanovski也检查一下答案中关于剃须刀页面的部分。我刚刚解决了这个问题。已将GetAsync更改为OnGetAsync()。谢谢你抽出时间。不,我已经创建了自己的数据库。在Neo4j浏览器中运行“MATCH(a:Movie)RETURN a.name as name limit 10”将返回我想要的结果。在上面的示例中,我使用@Model.result在Index.cshtml中显示了我的“result”变量,它是空的。“list”变量在执行查询并耗尽光标后是否填充了任何数据,发布你的电影实体的模式。@MilošVeljanovski也检查一下答案中关于剃须刀页面的部分。我刚刚解决了这个问题。已将GetAsync更改为OnGetAsync()。谢谢你抽出时间。