2

フィールドsubstringofのoDataに(または同様の?)フィルターを使用できるかどうか疑問に思っていますか? 私は自分のベースをintすべて照会したいのですが、完全一致ではなく、含むものにしたいからです。これはキャスト/変換を行うことは可能ですか?EnquiriesEnquiryID

これまでの私のクエリは次のとおりです。

/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タイプを使用する場合も同じです。

編集

これが私のコントローラーの私のGet方法です:Enquiries

[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 に答える