我在阅读 MCSD 认证工具包(考试 70-483(一书时发现了 OData 过滤器字符串函数bool substring(string p0, string p1)
。
尝试在我的应用程序中使用它:
/Categories?$select=CategoryName&$filter=substring(CategoryName,'Seafood')
并得到错误:
No function signature for the function with name 'substring' matches the specified arguments. The function signatures considered are:
substring(Edm.String Nullable=true, Edm.Int32);
substring(Edm.String Nullable=true, Edm.Int32 Nullable=true);
substring(Edm.String Nullable=true, Edm.Int32, Edm.Int32);
substring(Edm.String Nullable=true, Edm.Int32 Nullable=true, Edm.Int32);
substring(Edm.String Nullable=true, Edm.Int32, Edm.Int32 Nullable=true);
substring(Edm.String Nullable=true, Edm.Int32 Nullable=true, Edm.Int32 Nullable=true).
看起来所需的子字符串函数消失了?它在哪里?
我发现了类似的功能,效果很好:
/Categories?$select=CategoryName&$filter=substringof(CategoryName,'Seafood')
也许是因为这个原因:
substringof()
是V3函数,而contains()
是V4函数。
立即尝试包含:
$filter=contains(Name,'King')
请参阅参考资料