我正在使用Readify Neo4jClient对neo4j图形数据库进行密码查询。
在某些时候,我想像这样对数据库进行查询:
var results = Client.Cypher
.Match("(entity:" + myEntityType1 + ") -[:" + myRelationshipType + "]- (entity2:" + myEntityType2 + ")")
.Where((Entity entity) => entity.Id == pEntity.Id)
.Return(entity2 => entity2.As<runtimeType>())
.Results;
在编译时,我没有关于查询将加载的类型的信息。我想从db加载的类型仅在运行时已知。有没有办法让linq表达式(赋予Return() - 函数)采用运行时类型而不是硬编码类型?
运行时类型将由PropertyInfo对象提供。
对不起我错过了一些重要的信息:
运行时类型将是一种继承自编译时已知类型的类型。 将该已知类型赋予linq表达式将给出结果。但是,当然,此结果将仅包含继承类型中声明的字段。
答案 0 :(得分:1)
答案基本上是,不,原因很简单,“接下来你打算怎么做?”
最终,您必须存储一个编译时类型变量(意味着您真的知道该类型是什么,您只是没有意识到它),或者您必须将其存储在{{1}中无论如何,它的大部分时间都是如此,所以你可能会从现在开始。