有没有办法在 Azure 中查询匹配某个正则表达式而不是相等的 PartitionKeys?
例如:
我的 Azure 存储表分区键:CA94568、CA92122、CA92092、WA98005
示例查询 #1:
tableQuery = new TableQuery<Entry>().Where(TableQuery.GenerateFilterCondition(PartitionKey, QueryComparisons.Equal??, "CA.*"));
Run Code Online (Sandbox Code Playgroud)
查询结果 #1:“CA94568、CA92122、CA92092”
示例查询 #2:
tableQuery = new TableQuery<Entry>().Where(TableQuery.GenerateFilterCondition(PartitionKey, QueryComparisons.Equal??, "CA92.*"));
Run Code Online (Sandbox Code Playgroud)
查询结果 #2:“CA92122、CA92092”。
我认为这是不可能的,但是无论我问这个问题,也许我错过了一些东西。
我们可以在 azure 表中添加/删除列吗?
例如,默认情况下我们会得到这些列:PartitionKey、RowKey、Timestamp、ETag。例如,我可以添加另外 3 个:名字、姓氏、电子邮件列吗?
之后我将插入一些值,我想删除列电子邮件并添加列地址。我们可以这样做吗?
我有一个azure存储表,存储从多个源更新的状态.我有分区键作为源ID(每个源都是唯一的).现在,对于任何给定的源ID,我想访问上次更新的状态.我可以通过按时间戳按降序对分区中的结果进行排序并获取第一条记录来实现这一点,但它似乎并不是非常高效.每个分区可以有超过1000条记录,排序似乎不是最好的方法.
有没有其他方法可以以有效的方式实现同样的目标?分区中的实体是否已按某些行键排序,我可以利用它?
嗨我正在研究azure表"T1",这个表有实体集列表
Primarykey RowKey P1 P2
PP R1 5 10
PP R2 6 11
Run Code Online (Sandbox Code Playgroud)
现在假设我只想更新P2属性并且不想触摸P1属性这可能是为了更新azure表实体中的单个属性. 记住我不想触摸P1属性因为它不断更新其他功能
我是ASP.NET Core 的新手,我们必须实现一个应用程序来存储一些非关系数据(类似 Excel 的表中的某些行),因此我们决定使用 Azure 表。据我了解,EntityFramework Core不支持AzureTables ......在这种情况下,正确的方法是什么?
我已将我的 Azure 表存储帐户连接到 PowerBI。存储帐户具有以下字段
但是,将数据源连接到 PowerBI 桌面应用程序后,我只能看到以下屏幕。看到红色边框的屏幕。
为什么我看不到 Azure 表存储帐户的其他两个字段?
我正在使用默认示例在表存储中存储日期时间值。一字段计算如下
DateTime accMonth = new DateTime(DateTime.Now.Year,
DateTime.Now.Month, 1);
Run Code Online (Sandbox Code Playgroud)
通常上面表示时间为 00:00 的日期。
但是,当我将其保存在表存储中时,我将这次视为
2018-04-01T18:30:00.000Z
Run Code Online (Sandbox Code Playgroud)
这对我来说很奇怪!有谁知道为什么?
我只是想在 Azure 表中获取与某个字段名称匹配的所有实体,但似乎找不到任何可以学习的最新示例。
最终我想在 HTML 表中显示结果回到我的视图,所以我认为 aList<ActivityModel>会有意义。无论是那个还是IEnumerable因为我不需要更改任何实体(只需阅读)。无论哪种方式,我都在为基本概念而苦苦挣扎。
public async Task<List<ActivityModel>> GetActivitiesAsync(string domainName)
{
CloudTable cloudTable = TableConnection("NodeEvents");
TableQuery<ActivityModel> query = new TableQuery<ActivityModel>().Where(
TableQuery.GenerateFilterCondition("DomainName", QueryComparisons.Equal, domainName)
);
//tried many examples of continuation tokens/etc
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是所有最新的 SDK 都使用 ContinuationToken 的异步调用,我似乎找不到任何好的例子。这似乎应该是一项简单的任务。任何帮助表示赞赏。
试图在这里遵循,但示例引用了不再可用的方法和操作。
因此,我试图测试Azure表存储并模拟我依赖的东西。我的类的构造方式是,在构造函数中建立连接,即,创建一个新实例,CloudStorageAccount在其中创建StorageCredentials具有storageNameand 的实例storageKey。之后,创建一个实例CloudTable,在代码中进一步使用它来执行CRUD操作。我的课如下:
public class TableStorage : ITableStorage
{
private const string _records = "myTable";
private CloudStorageAccount _storageAccount;
private CloudTable _table;
private ILogger<TableStorage> _logger;
public AzureTableStorageService(ILogger<TableStorage> loggingService)
{
_storageAccount = new CloudStorageAccount(new StorageCredentials(
ConfigurationManager.azureTableStorageName, ConfigurationManager.azureTableStorageKey), true);
_table = _storageAccount.CreateCloudTableClient().GetTableReference(_records);
_table.CreateIfNotExistsAsync();
_logger = loggingService;
}
//...
//Other methods here
}
Run Code Online (Sandbox Code Playgroud)
_table在整个类中被重用于不同的目的。我的目标是模拟它,但是由于它是虚拟的并且没有实现任何接口,因此我无法提出一个简单的Mock解决方案,例如:
_storageAccount = new Mock<CloudStorageAccount>(new Mock<StorageCredentials>(("dummy", "dummy"), true));
_table = new Mock<CloudTable>(_storageAccount.Object.CreateCloudTableClient().GetTableReference(_records));
Run Code Online (Sandbox Code Playgroud)
因此,当我尝试以这种方式构造单元测试时,我得到:
Type to mock must be an …
我正在使用 HttpTrigger 创建一个新的 azure 函数。我想实现一个天蓝色的表存储表作为输入绑定。按照 msdn 中的源代码示例,我无法确定可以在哪个 NuGet 包中找到“Table”属性。
编译问题:
找不到类型或命名空间“TableAttribute”(您是否缺少 using 指令或程序集引用?)
代码行,导致问题:
public static async Task<IActionResult>
Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
[Table("AzureWebJobsHostLogscommon")] CloudTable cloudTable,
ILogger log)
Run Code Online (Sandbox Code Playgroud)
我所指的 MSDN 中的源代码示例可以在这里找到:
和这里:
第二个示例还显示了 using 指令。但即使在复制示例时,表属性也无法正确解析。
我还看到了这个 stackoverflow 线程:
但第一个解决方案对我来说只是一种解决方法,因为表存储连接是在函数执行期间完成的,而不是作为输入绑定。如果您看到第二个建议的解决方案,它会显示与 MSDN 中相同的代码。
这是我的代码:
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;
using Microsoft.WindowsAzure.Storage.Table;
using System;
using System.Net;
using System.Threading.Tasks;
namespace TableStorageIntegration.HTTPTrigger
{
public static class Function1
{
[FunctionName("DoSomething")]
public static async …Run Code Online (Sandbox Code Playgroud)