Novolis.Storage.AzureTables
2026.1.1.53
dotnet add package Novolis.Storage.AzureTables --version 2026.1.1.53
NuGet\Install-Package Novolis.Storage.AzureTables -Version 2026.1.1.53
<PackageReference Include="Novolis.Storage.AzureTables" Version="2026.1.1.53" />
<PackageVersion Include="Novolis.Storage.AzureTables" Version="2026.1.1.53" />
<PackageReference Include="Novolis.Storage.AzureTables" />
paket add Novolis.Storage.AzureTables --version 2026.1.1.53
#r "nuget: Novolis.Storage.AzureTables, 2026.1.1.53"
#:package Novolis.Storage.AzureTables@2026.1.1.53
#addin nuget:?package=Novolis.Storage.AzureTables&version=2026.1.1.53
#tool nuget:?package=Novolis.Storage.AzureTables&version=2026.1.1.53
Novolis.Storage.AzureTables
Azure Table Storage IRepository<T> provider. Id is the row key. Queries are OData filters executed by the service, including every continuation page.
Install
dotnet add package Novolis.Storage.AzureTables
Prerequisites: .NET 10 SDK (net10.0). Depends on Azure.Data.Tables and Novolis.Storage.Abstractions.
Quick start
using Microsoft.Extensions.DependencyInjection;
using Novolis.Storage.Abstractions;
using Novolis.Storage.AzureTables;
services.AddStorage(builder => builder.AddAzureTableProvider(o =>
{
o.ConnectionString = connectionString;
}));
var repo = sp.GetRequiredService<IRepository<MyEntity>>();
await repo.UpsertAsync(entity, cancellationToken);
await foreach (var name in repo.Query().Where(e => e.Active).Select(e => e.Name))
{
}
Entity types must implement IHasId and have a parameterless constructor. Stored properties are public read/write scalars: string, bool, integer, floating point, Guid, DateTime, DateTimeOffset, and enums.
Queries
Query() on IRepository<T> returns IAzureTableQuery<T> (IQueryable<T> and IAsyncEnumerable<T>). Where and Select are translated to OData filter and select when the operator is applied. Take stops the paged stream. OrderBy, Skip, Contains, and StartsWith throw NotSupportedException — nothing is evaluated on the client.
TryGetAsync is a point read on PartitionKey + RowKey. Queries always include PartitionKey eq 'row' and follow continuation tokens. Row keys are strings, not guid'...'.
API
| Type | Role |
|---|---|
AzureTableOptions |
ConnectionString, TablePrefix, MaxPerPage |
AzureTableStorageExtensions.AddAzureTableProvider |
Registers TableServiceClient, IRepository<>, IAzureTableRepository<> |
AzureTableRepositoryExtensions.Query |
IRepository<T> extension that starts an IAzureTableQuery<T> |
IAzureTableQuery<T> |
Where, Select, and Take translated to Table Storage; await foreach to read |
AddStorage (from Abstractions) also registers IIdProvider → GuidV7IdProvider and IRepositoryFactory.
Related
| Package | Role |
|---|---|
Novolis.Storage.Abstractions |
IRepository<T>, AddStorage, IHasId |
Novolis.Storage.Sqlite |
Local relational alternative |
Novolis.Storage.InMemory |
Volatile repositories for tests |
More documentation
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Azure.Data.Tables (>= 12.13.0)
- Azure.Identity (>= 1.21.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.FileProviders.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Novolis.Storage.Abstractions (>= 2026.1.1.53)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.1.1.53 | 36 | 10/4/2026 |
| 2026.1.1.52 | 38 | 10/4/2026 |
| 2026.1.1.51 | 43 | 10/4/2026 |
| 2026.1.1.50 | 40 | 10/3/2026 |
| 2026.1.1.49 | 41 | 10/3/2026 |
| 2026.1.1.48 | 39 | 10/3/2026 |
| 2026.1.1.46 | 40 | 10/3/2026 |
| 2026.1.1.45 | 42 | 10/3/2026 |
| 2026.1.1.42 | 60 | 10/3/2026 |