Я пытаюсь заставить код работать с использованием OData. Следующий фрагмент кода не работает.
ds - это OpenDataServiceProxy.
adapterTypeId - строковое представление Guid.
имя адаптера - это строковое имя
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, '');