gpt4 book ai didi

c# - 检测到具有不兼容类型的二元运算符。发现操作数类型 edm.string 和 edm.guid 的种类相等

转载 作者:行者123 更新时间:2023-11-30 14:27:25 24 4
gpt4 key购买 nike

我使用 breeze 谓词实现了一个过滤器。将 BreezeJs 和 ASP.NET WebAPI(Breeze 服务器端)与 Entity Framework 结合使用

谓词看起来像这样:

var predicate = breezeProvider.breeze.Predicate.create('serialNumber', '==', $scope.filter.serialNumber);
predicates.push(predicate);

当我执行查询时。 Breeze 抛出异常并显示以下消息:

A binary operator with incompatible types was detected. Found operand types edm.string and edm.guid for kind equal

$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&)

注意片段:

(SerialNumber eq guid'1b9d065e-eb48-4f3d-883c-2c841771a3e8')

我的服务器端如下:

[EnableBreezeQuery(MaxNodeCount = 200)]
public IQueryable<WarehouseProductTransactionDetail> GetProducts()
{
return _contextProvider.Context.WarehouseProductTransactionDetails;
}

我想弄清楚如何解决这种情况,但不知道。

感谢任何帮助

最佳答案

我在 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");

关于c# - 检测到具有不兼容类型的二元运算符。发现操作数类型 edm.string 和 edm.guid 的种类相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32872632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com