我使用微风谓词实现过滤器。将 BreezeJs 和 ASP.NET WebAPI(Breeze 服务器端)与实体框架一起使用
谓词如下所示:
var predicate = breezeProvider.breeze.Predicate.create('serialNumber', '==', $scope.filter.serialNumber);
predicates.push(predicate);
当我执行查询时。Breeze 抛出异常并显示以下消息:
检测到类型不兼容的二元运算符。找到类型相等的操作数类型 edm.string 和 edm.guid
$scope.filter.serialNumber 是一个字符串,serialNumber 是一个 GUID 属性
网址如下。
http://localhost:51969/breeze/WarehouseProductTransactions/GetProducts ?$filter=(StatusId ne 3d) and (WarehouseId eq 1d) and (AuthorizedADUserId eq 'bTdbnW8t6Uu4D4KHCoQOhg==') and (SerialNumber eq guid'1b9d065e-eb48-4f3d- 883c-2c841771a3e8')&$orderby=Id&$top=5&$expand=Inventory,AuthorizedADUser&$inlinecount=allpages&)
注意片段:
(序列号 eq guid'1b9d065e-eb48-4f3d-883c-2c841771a3e8')
我的服务器端如下:
[EnableBreezeQuery(MaxNodeCount = 200)]
public IQueryable<WarehouseProductTransactionDetail> GetProducts()
{
return _contextProvider.Context.WarehouseProductTransactionDetails;
}
我试图弄清楚如何解决这种情况,但不知道。
任何帮助表示赞赏