DataService如何通过LONG

时间:2014-04-03 19:13:07

标签: c# wcf-data-services

如何通过数据服务传递long类型参数?它通过INT没有任何问题,但是什么可以解决LONG?我尝试了用于笑话的字符串的方法,似乎没有用。

public TransactionCartItem GetTransactionCartItemByTransactionNumber(long transactionNumber)
{
    transactionNumber = (int)transactionNumber; // it works if I convert to INT (just for debugging reason I tried)

    var query =
        this.ClientRepositories
            .Context
            .CreateQuery<TransactionCartItem>("GetTransactionCartItemByTransactionNumber")
            .AddQueryOption("transactionNumber", transactionNumber)
            .FirstOrDefault();

    return query;
}

LONG使用时出错:

  

“错误请求 - 查询语法错误。”

1 个答案:

答案 0 :(得分:2)

我认为OData需要在Url中使用长(Int64)值来附加 L

试试这个并告诉我们。

public TransactionCartItem GetTransactionCartItemByTransactionNumber(long transactionNumber)
{   
    var query =
        this.ClientRepositories
            .Context
            .CreateQuery<TransactionCartItem>("GetTransactionCartItemByTransactionNumber")
            .AddQueryOption("transactionNumber", transactionNumber + "L")
            .FirstOrDefault();

    return query;
}

获得了文档.. Edm.Int64最后似乎需要一个尾随的 L http://www.odata.org/documentation/odata-version-2-0/overview/#AbstractTypeSystem