0

我正在使用具有自己的字段(Id、Name)的产品创建一个电子商务:这是我在 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();

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

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

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

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

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

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

1 回答 1

1

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

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

如果您更改对象,您将拥有使用这些新属性的代码,因此无论如何您都必须调整您的代码,或者?

您可以编写一些代码(或使用库,如果它支持的话)来消耗和水合任意对象。

于 2015-01-12T08:26:19.090 回答