Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript BreezeJS中按列对列求和或运算符筛选_Javascript_Entity Framework_Filtering_Breeze - Fatal编程技术网

Javascript BreezeJS中按列对列求和或运算符筛选

Javascript BreezeJS中按列对列求和或运算符筛选,javascript,entity-framework,filtering,breeze,Javascript,Entity Framework,Filtering,Breeze,如果我有一个包含两个数字列的表,比如X和Y,并且需要检索X>Y的行。我如何使用BreezeJS实现这一点?到目前为止,我遇到的所有示例都只能将列与固定值进行比较 编辑: 我尝试使用。其中(“Id”,“==”,“Id”)仅用于测试,但出现以下错误: 查询失败:检测到类型不兼容的二进制运算符。找到运算符类型“Equal”的操作数类型“Edm.Int32”和“Edm.String” 为了确认查询本身没有错误,我尝试了。其中(“Id”,“==”,1),它成功了 任何人对此有任何线索吗?当Breeze执行

如果我有一个包含两个数字列的表,比如X和Y,并且需要检索X>Y的行。我如何使用BreezeJS实现这一点?到目前为止,我遇到的所有示例都只能将列与固定值进行比较

编辑: 我尝试使用
。其中(“Id”,“==”,“Id”)
仅用于测试,但出现以下错误:

查询失败:检测到类型不兼容的二进制运算符。找到运算符类型“Equal”的操作数类型“Edm.Int32”和“Edm.String”

为了确认查询本身没有错误,我尝试了
。其中(“Id”,“==”,1)
,它成功了


任何人对此有任何线索吗?

当Breeze执行查询时,它会检查谓词右侧的字符串,以确定它是否是属性名而不是文字,默认情况下,如果查询的类型上存在同名属性,它会选择将值视为属性。因此,如果'qtyOrdered'和'qtyAvailable'都是'Order'类型的属性,则支持以下内容

  var query = EntityQuery.from("Order").where("qtyOrdered", ">", "qtyAvailable");

这种行为也可以被重写(有时对于字符串列是必要的),但很少需要

这是我最初执行的操作,但收到以下错误消息:“查询失败:检测到具有不兼容类型的二进制运算符。找到了运算符类型“LessThan”的操作数类型“Edm.Decimal”和“Edm.String”。我还确保列名匹配。这两个名称都是小数,其中一个可以为空。如果您使用的是类似“camelCasing”的命名约定,请确保这两个名称都是“客户端”名称。如果这是正确的,则通过调用两个属性名称的entityType.getProperty来检查entityType元数据,并检查您是否获得了具有两个调用所需数据类型的dataProperty。实际上。其中(“Id”、“=”,1)工作正常,但不是。其中(“Id”、“=”、“Id”)。如果名称不匹配,这两种方法都不起作用。但不确定如何访问entityType.getProperty。请详细说明一下好吗?好的,我可以确认我通过manager.metadataStore.getEntityType('MyTable').getProperty('Id')检索到的数据中的属性'Id'没有问题。它在查询回调方法之外不起作用,但我想这是正常的。类型检查现在不再是一个问题,因为两侧的列都是相同的。我现在完全迷路了。还有什么我可能遗漏的吗?我将尝试创建一些附加测试,看看是否可以重新设置您的问题。或者,如果您可以在Breeze.js.samples repo中使用DocCode示例创建一个失败的测试,并将其发布到这里或Git repo上。