Я пытаюсь заставить код работать с 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 фильтра, чтобы он использовал только часть «Name», он работал нормально. .
Поле таблицы DataAdapters «DataAdapterTypeId» связано внешним ключом с полем DataAdapterTypeId таблицы «DataAdapterTypes».
Может ли кто-нибудь заметить, что я делаю неправильно?
------------ ------- РЕДАКТИРОВАТЬ ----------------------
Хорошо, я изменил фильтр, как показано ниже. Я больше не получаю сообщение об ошибке, но получаю много результатов, а не одну запись, соответствующую фильтру. Кто-нибудь может сказать, почему он не фильтруется?
ds.query('/DataAdapters?($filter=Name eq \'' + adapterName + '\' and $filter=DataAdapterTypeId eq guid\'' + adapterTypeId + '\')', ifmgr_CreateAdapter_Step1, onGenericFailure, '');