gpt4 book ai didi

c# - OData 过滤器和 Guid 字段的问题

转载 作者:太空狗 更新时间:2023-10-29 17:38:32 26 4
gpt4 key购买 nike

我正在尝试让一些代码使用 OData 工作。以下代码似乎不起作用。

ds 是 OpenDataServiceProxy。

adapterTypeId 是 Guid 的字符串表示形式。

adapterName是一个字符串名称

ds.query('/DataAdapters?$filter=DataAdapterType.DataAdapterTypeId eq guid(\'' + adapterTypeId + '\') and Name eq \'' + adapterName + '\'', ifmgr_CreateAdapter_Step1, onGenericFailure, 'Error');

上面一行给出了以下错误:

在位置 0 处应为“System.Boolean”类型的表达式。

如果我删除过滤器的 Guid 部分,使其仅使用“名称”部分,它就可以正常工作。

DataAdapters 表字段“DataAdapterTypeId”是“DataAdapterTypes”表 DataAdapterTypeId 字段的外键。

谁能发现我做错了什么?

----------------编辑--------------------

好的,我已经更改了过滤器,如下所示。我不再收到错误,但返回了很多结果,而不是一条与过滤器匹配的记录。谁能说为什么它不过滤?

ds.query('/DataAdapters?($filter=Name eq \'' + adapterName + '\' and $filter=DataAdapterTypeId eq guid\'' + adapterTypeId + '\')', ifmgr_CreateAdapter_Step1, onGenericFailure, '');

最佳答案

guid 值的格式需要类似于 guid'' - 详情请参阅:http://www.odata.org/developers/protocols/overview#AbstractTypeSystem不知道你想用 DataAdapterType.DataAdatperTypeId 实现什么,但点字符在过滤器表达式中没有特殊含义,所以它可能不会做你想要的。如果您的 DataAdapters 实体集具有 DataAdapterType 类型的实体,然后具有 GUID 类型的属性 DataAdapterTypeId,那么您可以简单地对其进行过滤

DataAdapterTypeId eq guid'<value>'

关于c# - OData 过滤器和 Guid 字段的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3890034/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com