2

我想知道是否可以对字段substringof的 oData 使用(或类似的?)过滤器int?因为我想Enquiries根据他们查询我的所有内容,EnquiryID但我希望它是包含而不是完全匹配。这可以进行强制转换/转换吗?

到目前为止,这是我的查询:

/api/Enquiries?filter=substringof('123', EnquiryID)

但我收到以下错误:

Method 'Boolean Contains(System.String)' declared on type 'System.String' 
cannot be called with instance of type 'System.Int32'

我希望它返回包含123在其EnquiryID. 使用DateTime类型时我也得到相同的结果..

编辑

这是我GetEnquiries控制器中的方法:

[Queryable]
public IQueryable<EnquiryDTO> Get()
{
    var query = from enquiry in context.Enquiries
                select new EnquiryDTO
                {
                    CustomerID = enquiry.CustomerID,
                    OrderDate = (DateTime)enquiry.EnquiryDate,
                    OrderID = enquiry.EnquiryID,
                    Owner = enquiry.Owner
                };
    return query.AsQueryable();
}
4

1 回答 1

1

这是不可能的。OData 不支持在查询中转换原始类型。如果不出意外,麻烦将在于使用什么格式(特别是对于行日期时间等)。不过,您可以编写一个服务操作来为您处理这个问题(假设您的查询提供程序支持这个)。

于 2012-08-13T20:48:11.590 回答