我已在DocumentDb帐户的集合中创建了此存储过程 .
我在使用.NET SDK执行此操作时遇到问题,这是我的代码 .
dynamic[] procParams = new dynamic[] { "myid", "{ $set: { status : 'Draft' } }" };
return await _client.ExecuteStoredProcedureAsync<Listing>(UriFactory.CreateStoredProcedureUri("dbName", "collection", "update"), procParams);
SDK抛出ArgumentException:
“如果对象不是文档或附件,则无法序列化对象”
好像我只能传递文件或附件似乎不正确?我看过这篇博文,看起来这个家伙也在做同样但没有问题 .
那么如何将基本参数传递给存储过程,如字符串?
1 回答
为了澄清 - 看起来上面的异常是指将存储过程的响应反序列化到
Listing
类中的问题(与在执行存储过程之前引用序列化输入参数相反) .您可以通过检查存储过程作为字符串的响应来验证是否为真:
如果您能够以字符串形式检索更新的文档响应;这意味着存储过程成功执行,并且应该确认问题在于将存储过程响应反序列化到
Listing
类中 .这里常见的错误是POCO扩展Document类(而不是Resource类:
Microsoft.Azure.Documents.Resource
) . 请确保Listing
不扩展Document
,并且可以将存储过程的响应反序列化为Listing
类 .