【发布时间】:2011-04-22 20:19:41
【问题描述】:
我正在尝试使用 OData 使一些代码正常工作。以下代码似乎不起作用。
ds 是 OpenDataServiceProxy。
adapterTypeId 是 Guid 的字符串表示形式。
adapterName 是字符串名称
ds.query('/DataAdapters?$filter=DataAdapterType.DataAdapterTypeId eq guid(\'' + adapterTypeId + '\') and Name eq \'' + adapterName + '\'', ifmgr_CreateAdapter_Step1, onGenericFailure, 'Error');
以上行给出以下错误:
“System.Boolean”类型的表达式应位于位置 0。
如果我删除过滤器的 Guid 部分,使其仅使用“名称”部分,它就可以正常工作。
DataAdapters 表字段“DataAdapterTypeId”是“DataAdapterTypes”表 DataAdapterTypeId 字段的外键。
谁能发现我做错了什么?
-------编辑----------
好的,我已经更改了过滤器,如下所示。我不再收到错误,而是返回了很多结果,而不是一条与过滤器匹配的记录。谁能说出为什么它没有过滤?
ds.query('/DataAdapters?($filter=Name eq \'' + adapterName + '\' and $filter=DataAdapterTypeId eq guid\'' + adapterTypeId + '\')', ifmgr_CreateAdapter_Step1, onGenericFailure, '');
【问题讨论】: