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

时间:2013-12-01 08:36:13

标签: c# asp.net-web-api odata binary-operators

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

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


public Id ExternalIds { get; set; }

public class Id { [DataMember] public string Name { get; set; } [DataMember] public string Value { get; set; } }

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我认为我遇到了同样的问题 - 结果我使用了查询 Id eq" 5" ,而它应该是 Id eq 5 所以不引用基本上有帮助。