我正在尝试使用十进制数据类型创建Predicate
,但是我收到以下错误:
Error retrieving data.A binary operator with incompatible types was detected.
Found operand types 'Edm.Decimal' and 'Edm.Double' for operator kind 'Equal'.
Error: A binary operator with incompatible types was detected. Found operand types
'Edm.Decimal' and 'Edm.Double' for operator kind 'Equal'.
以下是我正在尝试的代码:
// engineSize equals 1.4 in this case.
predicate.create('engineLitreCapacity', '==', engineSize);
答案 0 :(得分:2)
我有同样的问题。我发现了这个错误:)...我认为在与元数据和REST服务控制器签名相关的命名约定中有些事情:例如:
不能工作
/*Breeze Controller Server Side*/
[HttpGet]
public IQueryable<Product> Items()
{
return _contextProvider.Context.Products;
}
/*Client*/
query = breeze.EntityQuery
.from("Items")
.where(Predicate.create('BasePrice', >', 1)
.orderBy(sortString)
.select(selectData)
.skip(skip)
.take(take)
.inlineCount();
它&#39;工作!!
/*Breeze Controller Server Side*/
[HttpGet]
public IQueryable<Product> Products()
{
return _contextProvider.Context.Products;
}
/*Client*/
query = breeze.EntityQuery
.from("Products")
.where(Predicate.create('BasePrice', >', 1)
.orderBy(sortString)
.select(selectData)
.skip(skip)
.take(take)
.inlineCount();
答案 1 :(得分:1)
您需要parseFloat
engineSize
:
predicate.create('engineLitreCapacity', '==', parseFloat(engineSize));
答案 2 :(得分:1)
'engineLitreCapacity'的元数据中的数据类型是什么,它是否与数据库中相同字段的数据类型匹配?如果没有,您的元数据是如何通过FetchMetadata调用初始化的,还是手工创建的?