Проблемы с фильтром OData и полем Guid

Я пытаюсь заставить код работать с 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, '');
9
задан Retrocoder 11 October 2010 в 08:17
поделиться