如何通过数据服务传递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使用时出错:
“错误请求 - 查询语法错误。”
答案 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