更新 Neo4j Cypher 查询抛出 NotSupportException
Update Neo4j Cypher query throws NotSupportException
我有以下 Neo4jClient Cypher 查询:
public TModel Update(TModel model)
{
return GraphClient.Cypher.Match(string.Format("(e:{0})", typeof(TModel).Name))
.Where<IEntity>(e => e.Id == model.Id)
.Set("e = {model}")
.WithParam("model", model)
.Return(e => e.As<TModel>())
.Results
.Single();
}
此方法获取模型并使用模型的 Id 更新现有模型。
此方法是通用存储库的一部分,该存储库也以相同的方式具有 Save()、GetAll()、GetById()。但是更新方法失败,原因如下:
NotSupportedException 抛出消息:
Unhandled node type MemberAccess in MemberExpression: Convert(value(Refugee.DataAccess.Neo4j.Repository.Neo4jRepository`1+<>c__DisplayClass2[Refugee.DataAccess.Graph.Models.Refugee]).model).Id
问题很奇怪。我必须将 model.Id 存储在方法内的临时变量中,然后将临时变量用于 lambda 表达式以使其工作。
我有以下 Neo4jClient Cypher 查询:
public TModel Update(TModel model)
{
return GraphClient.Cypher.Match(string.Format("(e:{0})", typeof(TModel).Name))
.Where<IEntity>(e => e.Id == model.Id)
.Set("e = {model}")
.WithParam("model", model)
.Return(e => e.As<TModel>())
.Results
.Single();
}
此方法获取模型并使用模型的 Id 更新现有模型。
此方法是通用存储库的一部分,该存储库也以相同的方式具有 Save()、GetAll()、GetById()。但是更新方法失败,原因如下:
NotSupportedException 抛出消息:
Unhandled node type MemberAccess in MemberExpression: Convert(value(Refugee.DataAccess.Neo4j.Repository.Neo4jRepository`1+<>c__DisplayClass2[Refugee.DataAccess.Graph.Models.Refugee]).model).Id
问题很奇怪。我必须将 model.Id 存储在方法内的临时变量中,然后将临时变量用于 lambda 表达式以使其工作。