作为一个完整的新手程序员,我试图用来自异构数据源的数据填充我的neo4j数据库。为此,我尝试使用Neo4jClient C#API。我的数据的异构性来自定制的,不断发展的DSL / DSML /元模型,它定义了可能的元素类型,即模型,因此为每种类型创建类并不理想。
据我了解,我的选择如下:
最终,我想要实现的是避免为我拥有的每种类型的元素定义一个单独的类,但仍然能够添加由我的元模型中的类型定义的属性。
我也有兴趣以某种方式影响序列化程序忽略不兼容的属性(类似于XmlIgnore),因此我不需要为每个具有多个原始类型的类创建一个单独的类。
谢谢, Ĵ
答案 0 :(得分:0)
您尝试解决的问题有两个 - 第一个是如何编写C#部分,第二个是如何将解决方案存储到第一个问题。
在某些时候,您需要在C#代码中访问此数据 - 除非您完全dynamic
,否则您需要拥有某种类结构。
选择3个选项:
请看一下这个问题:我认为neo4jclient heterogenous data return涵盖了这种情况。
在该答案中,转换器为您完成工作,您可以像以前一样create
,delete
等,转换器在这种情况下只处理IDictionary
实例。答案中的IDictionary<int, string>
是示例,您可以使用任何您想要的内容,如果您愿意,可以使用IDictionary<string, string>
,事实上 - 在该示例中,您所有&#39 ; d需要做的是将IntString
属性更改为IDictionary<string,string>
,它应该可以正常工作。
即使您沿着使用自定义查询的路线(您真的不需要),您仍然需要将对象作为类返回。没有什么变化,只会让你的生活更加艰难。
就XmlIgnore
而言 - 你试过JsonIgnore
吗?
或者 - 查看自定义转换器并将不兼容的属性添加到数据库中。