0

我是新手,所以请多多包涵。我正在构建一个连接到现有天蓝色表存储的 MVC 4 应用程序。现在我需要创建一些“过滤器”,这意味着我必须执行一些查询并将结果显示到应用程序的一个页面。现在我有以下内容:

模型:

public class psEntity : TableEntity
    {
        public psEntity() { }
        public string Message { get; set; }
        public string RoleName { get; set; }
        public string BatchName { get; set; }
        public string DeploymentID { get; set; }
        public string Description { get; set; }
    }

看法

 @model IEnumerable<MvcApplication6.Models.psEntity>

@{
    ViewBag.Title = "Performance Status";
}

<h2>Performance Status</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Message)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.RoleName)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Message)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.RoleName)
        </td>

    </tr>
}

控制器:

public class MailingListController : Controller
    {
        public MailingListController()
        {
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
            ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);
        }

        public ActionResult Index()
        {   
            TableQuery<psEntity> query=new TableQuery<psEntity>().Where(
                TableQuery.GenerateFilterCondition("RoleName", 
                QueryComparisons.Equal,"Contacts.Worker.Azure"));
    foreach (psEntity list in query)
                {
                    lists.Add(list);
                }
                return View(lists);

        }

我的问题是查询之后会发生什么,以便仅显示我在视图上创建的表中的特定数据。

我尝试使用 foreach 但出现错误,

“foreach 语句无法对 Microsoft.WindowsAzure.Storage.Table.TableQuery>MVCApplication6.Models.psEntity> 类型的变量进行操作,因为它不包含 'GetEnumerator' 的公共定义”。

先感谢您

4

1 回答 1

0

检查这个:

检索所有实体如何:检索分区中的所有实体

要在表中查询分区中的所有实体,请使用 TableQuery 对象。以下代码示例为“Smith”是分区键的实体指定了一个过滤器。本示例将查询结果中每个实体的字段打印到控制台。

// Retrieve the storage account from the connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
    CloudConfigurationManager.GetSetting("StorageConnectionString"));

// Create the table client.
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

// Create the CloudTable object that represents the "people" table.
CloudTable table = tableClient.GetTableReference("people");

// Construct the query operation for all customer entities where PartitionKey="Smith".
TableQuery<CustomerEntity> query = new TableQuery<CustomerEntity>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "Smith"));

// Print the fields for each customer.
foreach (CustomerEntity entity in table.ExecuteQuery(query))
{
    Console.WriteLine("{0}, {1}\t{2}\t{3}", entity.PartitionKey, entity.RowKey,
        entity.Email, entity.PhoneNumber);
}
于 2013-05-27T20:48:04.980 回答