我嘗試創建DocumentDB一個用戶定義的函數在使用它在查詢的WHERE子句,但執行會拋出一個Microsoft.Azure.Documents.Linq.DocumentQueryException
以下消息:如何使用UserDefinedFunctionProvider.Invoke在一個UDF的where子句
不支持'System.Object'類型的常量。
以下代碼說明了所描述的行爲。難道我做錯了什麼?
string udfName = "udfDemo";
UserDefinedFunction udfDemo = new UserDefinedFunction()
{
Id = udfName,
Body = @"function(a, b) {
return true;
}"
};
UserDefinedFunction createdUdf = documentClient.UpsertUserDefinedFunctionAsync(documentCollectionUri, udfDemo).Result;
int intParameter1 = 1;
IQueryable<MyModel> query= documentClient
.CreateDocumentQuery<MyModel>(documentCollectionUri)
.Where(order =>
(bool)UserDefinedFunctionProvider.Invoke(udfName, order.CancelationDetails, intParameter1));
var result = query.ToList();
你說得對,馬丁! Rajesh說這個bug是固定的。在通過郵件聯繫Andrew Liu並指導他到這個SO帖子後,DocumentDB團隊進行了一些進一步的調查,並使用Microsoft Azure DocumentDB Client Library 1.9.2修復了這個錯誤。 –