2014-04-03 54 views
0

如何將長型參數傳遞給數據服務?它通過INT沒有問題,但什麼可能是LONG的解決方案?我嘗試了用於玩笑的字符串的方法,似乎並不奏效。對於長期使用DataService如何通過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; 
} 

錯誤:

「錯誤的請求 - 錯誤的查詢語法」

+0

你得到了什麼錯誤信息? –

+0

「錯誤的請求 - 查詢語法錯誤」。問題是INT可以正常工作,所以所有的存儲庫都可以正確初始化等等。我用了很長時間,但是我從來沒有機會或要求使用LONG類型over wire 。 –

+0

您是否嘗試使用提琴手來查看正在發送的內容? – attila

回答

2

我想的OData需要長(Int64的)的URL值與附加L

試試這個,讓我們知道。

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

    return query; 
} 

得到的文件。該Edm.Int64似乎在年底需要一個尾隨大號http://www.odata.org/documentation/odata-version-2-0/overview/#AbstractTypeSystem

+0

當我使用url在瀏覽器中發出OData請求時,我知道long必須附加'L',所以這應該起作用。 – mdisibio

+0

那就是謝謝你:) –

相關問題