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
数据类型text 和varchar在 equal to运算符中不兼容