当前位置: 首页 > news >正文

.NET C# 操作Neo4j图数据库

.NET C# 操作Neo4j图数据库

目录

  • .NET C# 操作Neo4j图数据库
    • 环境
    • Code

环境

VisualStudio2022 + .NET 6 + Neo4j.Driver 5.21

在这里插入图片描述

Code

// 连接设置
var uri = "bolt://localhost:7687";
var user = "neo4j";
var password = "password"; // 请替换为你的实际密码var driver = GraphDatabase.Driver(uri, AuthTokens.Basic(user, password));
var session = driver.AsyncSession();try
{// 创建节点var createResult = await session.RunAsync("CREATE (n:Person {name: $name, age: $age}) RETURN n", new { name = "Alice", age = 30 });var createdNode = await createResult.SingleAsync();Console.WriteLine($"Created Node: {createdNode["n"].As<INode>().Properties["name"]}");// 查询节点var readResult = await session.RunAsync("MATCH (n:Person) WHERE n.name = $name RETURN n", new { name = "Alice" });var readNode = await readResult.SingleAsync();Console.WriteLine($"Read Node: {readNode["n"].As<INode>().Properties["name"]}");// 更新节点var updateResult = await session.RunAsync("MATCH (n:Person) WHERE n.name = $name SET n.age = $age RETURN n", new { name = "Alice", age = 35 });var updatedNode = await updateResult.SingleAsync();Console.WriteLine($"Updated Node Age: {updatedNode["n"].As<INode>().Properties["age"]}");// 删除节点var deleteResult = await session.RunAsync("MATCH (n:Person) WHERE n.name = $name DELETE n", new { name = "Alice" });Console.WriteLine("Deleted Node: Alice");// 创建节点 Alicevar createAlice = await session.RunAsync("CREATE (a:Person {name: $name, age: $age}) RETURN a",new { name = "Alice", age = 30 });var aliceNode = await createAlice.SingleAsync();Console.WriteLine($"Created Node: {aliceNode["a"].As<INode>().Properties["name"]}");// 创建节点 Bobvar createBob = await session.RunAsync("CREATE (b:Person {name: $name, age: $age}) RETURN b",new { name = "Bob", age = 25 });var bobNode = await createBob.SingleAsync();Console.WriteLine($"Created Node: {bobNode["b"].As<INode>().Properties["name"]}");// 创建关系 KNOWSvar createRelationship = await session.RunAsync(@"MATCH (a:Person {name: $nameA}), (b:Person {name: $nameB})CREATE (a)-[r:KNOWS]->(b)RETURN r",new { nameA = "Alice", nameB = "Bob" });var relationship = await createRelationship.SingleAsync();Console.WriteLine($"Created Relationship: {relationship["r"].As<IRelationship>().Type}");
}
catch (Exception ex)
{Console.WriteLine($"An error occurred: {ex.Message}");
}
finally
{await session.CloseAsync();await driver.CloseAsync();
}

相关文章:

  • Web3设计风格的特点和趋势
  • Web渗透:XSS-DOM-based XSS
  • AG32 MCU是否支持DFU下载实现USB升级
  • 【React Native】measureInWindow在安卓上无法正确获取View在屏幕上的布局信息
  • 【html】用html写一个博物馆首页
  • 想学接口测试,不知道那个工具适合?
  • 已解决ApplicationException异常的正确解决方法,亲测有效!!!
  • python单元测试
  • 视频AI分析定时任务思路解析
  • vscode用vue框架2,续写登陆页面逻辑,以及首页框架的搭建
  • 富文本编辑器CKEditor
  • Attention系列总结-粘贴自知乎
  • 【吊打面试官系列-Mysql面试题】视图有哪些优点?
  • Java爬虫(一)
  • OneNote for Windows 10 下载
  • CSS盒模型深入
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Java读取Properties文件的六种方法
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Joomla 2.x, 3.x useful code cheatsheet
  • JSDuck 与 AngularJS 融合技巧
  • Laravel 中的一个后期静态绑定
  • Odoo domain写法及运用
  • Vim 折腾记
  • 今年的LC3大会没了?
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 使用 @font-face
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 我这样减少了26.5M Java内存!
  • FaaS 的简单实践
  • Nginx实现动静分离
  • Python 之网络式编程
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #70结构体案例1(导师,学生,成绩)
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #window11设置系统变量#
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (1)虚拟机的安装与使用,linux系统安装
  • (C++17) optional的使用
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (全注解开发)学习Spring-MVC的第三天
  • (一)插入排序
  • .NET Project Open Day(2011.11.13)
  • .net 连接达梦数据库开发环境部署
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NET面试题(二)
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .NET项目中存在多个web.config文件时的加载顺序
  • ?php echo ?,?php echo Hello world!;?
  • @ModelAttribute 注解