使用参数从.Net调用DocumentDb存储过程。

使用参数从.Net调用DocumentDb存储过程。,.net,stored-procedures,azure-cosmosdb,.net,Stored Procedures,Azure Cosmosdb,调用存储过程工作正常,但我似乎无法向其传递参数。它在Azure门户中按预期工作,但在从.net调用时不起作用 documentClient = new DocumentClient(new Uri(endpointUrl), authorizationKeyAdmin); var sproc = documentClient.CreateStoredProcedureQuery(_companyCollection.StoredProceduresLink, "select * from roo

调用存储过程工作正常,但我似乎无法向其传递参数。它在Azure门户中按预期工作,但在从.net调用时不起作用

documentClient = new DocumentClient(new Uri(endpointUrl), authorizationKeyAdmin);
var sproc = documentClient.CreateStoredProcedureQuery(_companyCollection.StoredProceduresLink, "select * from root r where r.id = \"testSproc\"");
var result = documentClient.ExecuteStoredProcedureAsync<string>("dbs/GypNAB==/colls/GxpNAKrZMwA=/sprocs/GxpNAKrZMwxxxxAAAAAAAgA==/", sproc, "MyParameter");
从.net调用时的输出是“[object object]找不到文档!”我希望[object]是我的参数值。如果我删除参数限制,我会得到一个正确的结果集。另外,如果我在azure中使用参数运行它,我会得到一个正确的结果集


提前感谢。

ExecuteStoredProcedureAsync()(
sproc
)的第二个参数映射到存储过程中的第一个参数-这就是为什么
rrid
在输出中显示为
[object object]

尝试运行:

var result = documentClient.ExecuteStoredProcedureAsync<string>("dbs/GypNAB==/colls/GxpNAKrZMwA=/sprocs/GxpNAKrZMwxxxxAAAAAAAgA==/",  "MyParameter");
var result=documentClient.ExecuteStoredProcedureAsync(“dbs/GypNAB==/colls/GxpNAKrZMwA=/sprocs/gxpnakrzmwxxxxaaaaaga==/”,“MyParameter”);

Ug,thanx。我猜我的代码是基于一个糟糕的例子。也许您可以解释一下,我已经看到了一些示例,它们确实首先从存储过程名称中选择*。这是用来获取存储过程ID的还是这样做的目的?当DocumentDB发布时,它要求所有资源都由系统生成的
\u self
链接引用。。。这可能是旧样本的基础。大约半年前,通过用户定义的
id
进行路由,这使得通过id查询资源变得多余。
var result = documentClient.ExecuteStoredProcedureAsync<string>("dbs/GypNAB==/colls/GxpNAKrZMwA=/sprocs/GxpNAKrZMwxxxxAAAAAAAgA==/",  "MyParameter");