如何向本地存储帐户中的表编写 LINQ 查询?
Posted
技术标签:
【中文标题】如何向本地存储帐户中的表编写 LINQ 查询?【英文标题】:How can I write a LINQ query towards a table in the Local Storage Account? 【发布时间】:2021-10-30 20:26:48 【问题描述】:所需流量:
-
HTTP 请求将数据插入到 Azure 存储中的表中。目前使用邮递员和本地主机。注意:这运行成功,这是我正在努力的第 2 步。
当数据行作为数据类型 String 存储在此处的表 (tablename = Test) 中时,我想使用控制台应用程序查询数据。
对于我的两个问题,还请查看我在代码中的注释。
Q1) 当我只在模拟器中本地运行它以连接到我的本地表时, storageConnectionString 应该是什么?
Q2) 我现在如何使用 LINQ 查询表中的所有内容(例如第 15 行)并将其存储在变量中,然后将其打印到控制台窗口?
using System;
using System.Threading.Tasks;
using Microsoft.Azure.Cosmos.Table;
namespace demo
class Program
static void Main(string[] args)
Console.WriteLine("Table storage sample");
var storageConnectionString = "??"; // What should storageConnectionString be when I'm only running this locally in the emulator?
var tableName = "Test";
CloudStorageAccount storageAccount;
storageAccount = CloudStorageAccount.Parse(storageConnectionString);
CloudTableClient tableClient = storageAccount.CreateCloudTableClient(new TableClientConfiguration());
CloudTable table = tableClient.GetTableReference(tableName);
//How can I now query all the content in the table or for example row 15 using LINQ and store it in an variable, and print it to console window?
POCO
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Azure.Cosmos.Table;
namespace LokalTesting.TableEntities
public class Test: TableEntity
public Test()
public Test(string NameId)
PartitionKey = NameId;
RowKey = NameId;
public string NameId get; set;
public string Status get; set;
public string RoutingId get; set;
期望的输出:
-All rows where NameId = Jon
【问题讨论】:
请编辑您的问题并包括 1) 您用于模拟存储表实体的任何 POCO 模型的代码和 2) 您希望通过查询检索的示例数据。 嗨,我现在已经更新了 POCO 和所需的输出数据。 【参考方案1】:Q1 - 试试"UseDevelopmentStorage=true"
第二季度-
var rows = new List<Test>();
var query = new TableQuery<Test>().Where(TableQuery.GenerateFilterCondition("<propertyName>", QueryComparisons.Equal, propertyValue));
TableContinuationToken continuationToken = null;
do
var queryResult = await table.ExecuteQuerySegmentedAsync(query, continuationToken);
rows.AddRange(queryResult);
continuationToken = queryResult.ContinuationToken;
while (continuationToken != null);
这里可以生成查询:var query = new TableQuery<Test>().Where(TableQuery.GenerateFilterCondition("NameId", QueryComparisons.Equal, "Jon"));
【讨论】:
对于Microsoft.Azure.Cosmos.Table
,我认为不可能使用连接字符串。你能确认一下吗?
@GauravMantri 我刚刚使用UseDevelopmentStorage=true
在本地运行了一些代码,并将其连接到本地表。使用Microsoft.Azure.Cosmos.Table
。以上是关于如何向本地存储帐户中的表编写 LINQ 查询?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Terraform 将文件从本地计算机复制到存储帐户
在 Entity Framework Core 中,如何使用数据库级别的条件(不是本地 LINQ)查询连接表上的数据?