【发布时间】:2018-01-23 06:25:12
【问题描述】:
我在 gremlin 中有两个查询,第一个是添加一个顶点,第二个是在添加的顶点和图中已存在的顶点之间添加一条边。
string query1 = $"g.addV('session').property('id','{session_id}').property('initialState', 'start')";
string query2 = $"g.V('{session_id}').addE('belongs').to(g.V('{userId}'))";
当我用 C# 编写程序时,要确保上述两个命令都运行或都不运行,第一个想法是在 C# 中使用 TransactionScope。但是,它没有解决我的问题,因为它不在 Cosmos DB 上。问题是如何在 C# 中的 Graph Cosmos DB 上的 事务 中执行这些命令?。
在 gremlin 中有什么技术可以解决这个问题吗? graph.tx().commit() 是否适用于 Cosmos DB?
// In A Transaction Scope
IDocumentQuery<dynamic> query = database.Client.CreateGremlinQuery<dynamic>(database.Graph, query1);
query.ExecuteNextAsync().Result;
query = database.Client.CreateGremlinQuery<dynamic>(database.Graph, query2);
query.ExecuteNextAsync().Result;
【问题讨论】:
标签: c# transactions gremlin azure-cosmosdb