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

时间:2015-01-11 10:23:23

标签: c# attributes neo4j neo4jclient schemaless

我正在使用拥有自己字段(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();

假设用户或我需要向产品节点添加一些其他属性(例如价格),首先要向类中添加新的Product属性

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

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

显然,这是硬编码方法,对动态数据库/网站不利。

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

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

1 个答案:

答案 0 :(得分:1)

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

您可以使用Liquigraph

等工具至少在数据库中进行架构更改

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

你可以编写一些代码(或者如果它支持它就使用它)来消耗和保湿任意对象。