neo4jclient:在运行时创建属性/字段,没有固定的模式应用程序

本文关键字:应用程序 模式 字段 运行时 创建 属性 neo4jclient | 更新日期: 2023-09-27 18:37:01

我正在创建一个电子商务,产品有自己的字段(Id,名称):这是我在 c# 中的对象

public class Product
{
  public int Id { get; set; }
  public string Name { get; set; }
}

这是我在 C# 到 neo4j 中生成产品的代码

Console.WriteLine("Generate node: ");
var newProduct = new Product{Id=666, Name="Banana"};
client.Cypher
      .Create("(product:Product {newProduct})")
      .WithParams(new { newProduct })
      .ExecuteWithoutResults();

假设用户或我需要在产品节点中添加一些其他属性,例如价格,第一件事就是向类添加新的 Product 属性

..
public int price { get; set; }
..

然后修改密码代码以添加具有 net 属性/属性的产品。

显然,这是一种硬编码方法,不利于动态数据库/站点。

由于我已经习惯了RDBMS,这种类型的问题只能用EAV和众多枢轴来解决,我希望Nosql(即Neo4J)可以帮助我处理没有EAV的变量属性。生成代码的代码可能是一个解决方案?

  • 我想到的是使用动态代码/变量或代码Dom,这是要走的路吗? 还有其他优雅的解决方案吗?
  • 请提供一些解释或研究主题。
  • NoSql 应该是无模式的,但它的无模式应用程序并不那么容易,我说得对吗?

neo4jclient:在运行时创建属性/字段,没有固定的模式应用程序

在无架构数据库中,架构存在于使用它的应用程序中。

您至少可以使用Liquigraph之类的工具在数据库中进行模式更改

如果你改变你的对象,你将有使用这些新属性的代码,所以你必须调整你的代码,或者?

您可以编写一些代码(或者使用库,如果它支持它)来消费和冻结任意对象。