检测到类型不兼容的二元运算符。找到运算符类型“Equal”的操作数类型“Edm.Guid”和“Edm.String”。 OData 2.2
Posted
技术标签:
【中文标题】检测到类型不兼容的二元运算符。找到运算符类型“Equal”的操作数类型“Edm.Guid”和“Edm.String”。 OData 2.2【英文标题】:A binary operator with incompatible types was detected. Found operand types 'Edm.Guid' and 'Edm.String' for operator kind 'Equal'. OData 2.2 【发布时间】:2016-08-24 03:07:46 【问题描述】:剑道滤镜
if ($.trim(DepartmentId)) $filter.push( field: "DepartmentId", operator: "eq", value: DepartmentId );
型号
public System.Guid DepartmentId get; set;
方法
[Queryable]
public IQueryable<Employee> Get(ODataQueryOptions opts)
EmployeeService.HrEmployeeServiceFacadeClient emp = new EmployeeService.HrEmployeeServiceFacadeClient();
var response = emp.GetAll();
List<Employee> result = JsonConvert.DeserializeObject<List<Employee>>(response.Result);
var resultString = result.AsQueryable();
return resultString;
我正在使用 OData 2.2
显示错误
检测到类型不兼容的二元运算符。找到运算符类型“Equal”的操作数类型“Edm.Guid”和“Edm.String”。
【问题讨论】:
【参考方案1】:在 OData v2 中,文字 GUID 必须序列化为 guid'dddddddd-dddd-dddd-dddd-dddddddddddd'
,其中每个 d
代表一个十六进制数字。
【讨论】:
"'where' 条件无效。实体成员正在调用无效的属性或方法。", /AccountSet?$filter=AccountId eq guid'03a0a47b-e3a2-e311-9402-00155d104c22'以上是关于检测到类型不兼容的二元运算符。找到运算符类型“Equal”的操作数类型“Edm.Guid”和“Edm.String”。 OData 2.2的主要内容,如果未能解决你的问题,请参考以下文章
二元运算符“==”不能应用于“布尔”和“字符串?”类型的操作数对于 2020 年的 Swift [重复]