Breeze构建了一个无效的$filter
我有一个名为Workorders的实体和一个名为WorkOrderView的实体,它们都指向数据库中的同一个表 两者都有一个名为“customerId”的字段,该字段的类型为int 查询视图并设置其where子句时:Breeze构建了一个无效的$filter,breeze,Breeze,我有一个名为Workorders的实体和一个名为WorkOrderView的实体,它们都指向数据库中的同一个表 两者都有一个名为“customerId”的字段,该字段的类型为int 查询视图并设置其where子句时: .where("customerId", "eq", "73") 它在文件中工作并生成此$filter: 但是,当我将确切的EntityQuery更改为指向表实体时,它会这样创建它: 这会导致EF由于无效的数据类型而引发错误 我的第一站是查看返回的元数据,看看BreezeCl
.where("customerId", "eq", "73")
它在文件中工作并生成此$filter:
但是,当我将确切的EntityQuery更改为指向表实体时,它会这样创建它:
这会导致EF由于无效的数据类型而引发错误
我的第一站是查看返回的元数据,看看BreezeClient是否认为它是一个字符串,但表和视图版本都是EdmInt32的数据数据类型
查看实体版本:
和表实体版本:
我错过了什么明显的东西吗?谢谢。每当您看到类似的内容时,通常都会发现您没有向客户机提供有关EntityType的良好元数据。构造查询时,通常使用“resourceName”来指定查询的端点,breeze通过EntityType/resourceName映射(在文档中讨论)在内部将其转换为EntityType。此查找可能失败。对于breeze来说,这不一定是一个bug,因为breeze还支持不存在元数据的端点,但在这些情况下,breeze需要额外的信息 您可以在执行后转到查询并使用EntityQuery.fromEntityType属性来检查这一点(请参阅)。我猜这将返回一个匿名EntityType,而不是您所期望的“WorkOrder”类型。如果是这样,那么当breeze没有找到相关查询的EntityType时,它必须猜测filter子句的数据类型 要解决此问题,请修复导致您获取错误元数据(通常是错误的资源名称)的问题,或者使用“EntityQuery.toType”方法强制查询使用指定的EntityType。下面的链接将讨论这两个问题 关于您可能遇到的资源名称/entityType名称映射问题的讨论
谢谢Jay-今天晚些时候我会深入研究,看看能找到什么。有趣的是,数据库中的其他表似乎工作得很好。