Leo*_*ger 3 c# asp.net-web-api angularjs breeze breeze-sharp
我使用breeze谓词实现过滤器.使用BreezeJs和ASP.NET WebAPI(Breeze Server Side)和Entity Framework
谓词看起来像这样:
var predicate = breezeProvider.breeze.Predicate.create('serialNumber', '==', $scope.filter.serialNumber);
predicates.push(predicate);Run Code Online (Sandbox Code Playgroud)
当我执行查询.Breeze使用以下消息抛出异常:
检测到具有不兼容类型的二元运算符.找到操作数类型edm.string和edm.guid用于种类相等
$ scope.filter.serialNumber是一个字符串,serialNumber是一个GUID属性
网址如下.
http:// localhost:51969/breeze/WarehouseProductTransactions/GetProducts?$ filter =(StatusId ne 3d)和(WarehouseId eq 1d)和(AuthorizedADUserId eq'bTdbnW8t6Uu4D4KHCoQOhg ==')和(SerialNumber eq guid'1b9d065e-eb48-4f3d- 883C-2c841771a3e8' )&$的OrderBy =编号&$顶部= 5&$扩大=库存,AuthorizedADUser&$ inlinecount =所有页&)
请注意代码段:
(SerialNumber eq guid'1b9d065e-eb48-4f3d-883c-2c841771a3e8')
我的服务器端如下:
[EnableBreezeQuery(MaxNodeCount = 200)]
public IQueryable<WarehouseProductTransactionDetail> GetProducts()
{
return _contextProvider.Context.WarehouseProductTransactionDetails;
}
Run Code Online (Sandbox Code Playgroud)
我试图找出如何解决这种情况,但不知道.
任何帮助表示赞赏
在Breeze查询中比较userId时遇到了同样的问题.Breeze在OData查询中附加'guid'.
我能够通过附加.toType("entityTypeName")到breeze查询来解决这个问题.
let query = new breeze.EntityQuery().from('orders');
let predicate = breeze.Predicate.create("CreatedBy", "==", userId);
query = query.where(predicate).toType("Order");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1723 次 |
| 最近记录: |