odata 错误 - 检测到类型不兼容的运算符

Posted

技术标签:

【中文标题】odata 错误 - 检测到类型不兼容的运算符【英文标题】:odata error - operator with incompatible types was detected 【发布时间】:2013-12-17 02:22:33 【问题描述】:

我是 odata 和 WebApi 的新手。 我正在尝试发送以下 odata 查询:?$filter=ExternalIds eq '5'

ExternalIds 是对象的一部分,定义为:

公共 ID ExternalIds 获取;放; public class Id [DataMember] public string Name get; set; [DataMember] public string Value get; set;

我收到错误: “检测到类型不兼容的二元运算符。找到运算符类型“Equal”的操作数类型“GenericAPIInterface.Entities.User.Id”和“Edm.String”。”

【问题讨论】:

【参考方案1】:

为了在相关类上使用属性值,您需要使用$filter 中的导航语法,例如...?$filter=ExternalIds/Value eq '5'。此外,如果ExternalIds 是一个实体(有自己的 id),您可能需要使用$expand 来扩展它。但是,这对于 filter 子句的工作并不是绝对必要的。

【讨论】:

【参考方案2】:

我想我只是遇到了同样的问题 - 结果我使用了一个查询 Id eq "5" 而它应该是 Id eq 5 所以取消引用基本上有帮助.

【讨论】:

以上是关于odata 错误 - 检测到类型不兼容的运算符的主要内容,如果未能解决你的问题,请参考以下文章

检测到类型不兼容的二元运算符。找到类型相等的操作数类型 edm.string 和 edm.guid

角度从 8 升级到 9 - 纱线不兼容错误

OData“列表中的 ID”查询

数据类型text 和varchar在 equal to运算符中不兼容

TSQLT 单元测试 - 数据类型文本和文本在等于运算符中不兼容

SQL Query 中的“等于运算符中的数据类型 text 和 nvarchar 不兼容”