2012-06-10 69 views
1

我想對查詢表存儲,但我收到以下錯誤:的Windows Azure表存儲查詢錯誤 - 其中一個請求輸入無效

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">

<code>InvalidInput</code>

<message xml:lang="en-US">One of the request inputs is not valid.</message>

</error>

我使用的代碼如下:

public IEnumerable<ShoppingItemEntity> Get(string shoppingRowKey) { 

    var ctx = getTableServiceContext(); 
    var shoppingItems = ctx.CreateQuery<ShoppingItemEntity>(
     Constants.TABLE_STORAGE_SHOPPING_ITEM_TABLE_NAME 
    ).Where(x => x.PartitionKey == string.Empty && x.ShoppingId == shoppingRowKey).AsTableServiceQuery(); 

    return shoppingItems.ToList(); 
} 

private TableServiceContext getTableServiceContext() { 

    var account = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["DataConnectionString"]); 
    return account.CreateCloudTableClient().GetDataServiceContext(); 
} 

這裏奇怪的是,如果我不跑where子句的查詢,我沒有得到任何錯誤:

public IEnumerable<ShoppingItemEntity> Get(string shoppingRowKey) { 

    var ctx = getTableServiceContext(); 
    var shoppingItems = ctx.CreateQuery<ShoppingItemEntity>(
     Constants.TABLE_STORAGE_SHOPPING_ITEM_TABLE_NAME 
    ).AsTableServiceQuery(); 

    return shoppingItems.ToList(); 
} 

你認爲這裏的問題是什麼?

回答

4

有文章herehere顯示了您使用Azure Table存儲具有的類似體驗。在處理Azure開發存儲時,您確實需要通過插入一些虛擬實體來「說服」表服務提供者,使其知道自己在做什麼。

我相信你一定會喜歡這篇文章Azure Table Storage, what a pain in the ass

相關問題