CheesyTot.AzureTables.SimpleIndex
0.1.35
dotnet add package CheesyTot.AzureTables.SimpleIndex --version 0.1.35
NuGet\Install-Package CheesyTot.AzureTables.SimpleIndex -Version 0.1.35
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CheesyTot.AzureTables.SimpleIndex" Version="0.1.35" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CheesyTot.AzureTables.SimpleIndex --version 0.1.35
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: CheesyTot.AzureTables.SimpleIndex, 0.1.35"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install CheesyTot.AzureTables.SimpleIndex as a Cake Addin #addin nuget:?package=CheesyTot.AzureTables.SimpleIndex&version=0.1.35 // Install CheesyTot.AzureTables.SimpleIndex as a Cake Tool #tool nuget:?package=CheesyTot.AzureTables.SimpleIndex&version=0.1.35
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
CheesyTot.AzureTables.SimpleIndex
This project provides a simple way to add simple indexing to your Azure Table Storage entities.
Decorate properties to be indexed
public class Cat : ITableEntity
{
public Cat(string partitionKey, string rowKey)
{ }
public string PartitionKey { get; set;}
public string RowKey { get; set; }
public DateTimeOffset? Timestamp { get; set; }
public ETag ETag { get; set; }
[SimpleIndex]
public string Breed { get; set; }
[SingleIndex]
public int YearBorn {get; set;}
public string Name { get; set; }
}
Add SimpleIndexRepository to your project
Program.cs
builder.Services.Configure<RepositoryOptions>(options =>
{
options.StorageConnectionString = "UseDevelopmentStorage=true";
options.TablePrefix = "Example";
options.IndexTableSuffix = "Index";
});
builder.Services.AddScoped<ISimpleIndexRepository<Cat>, SimpleIndexRepository<Cat>>();
Query by indexed property
public class MyDataAccess
{
private readonly ISimpleIndexRepository<Cat> _catRepository;
public MyDataAccess(ISimpleIndexRepository<Cat> catRepository)
{
_catRepository = catRepository;
}
public async Task<IEnumerable<Cat>> GetCatsByBreed(string breed)
{
return await _cat.GetByIndexedPropertyAsync("Breed", breed);
}
}
Query by multiple indexed properties
public async Task<IEnumerable<Cat>> GetCatsByBreedAndBirthYear(string breed, int birthYear)
{
var breedResults = await _cat.GetByIndexedPropertyAsync("Breed", breed);
var yearResults = await _cat.GetByIndexedPropertyAsync("BirthYear", birthYear);
return breedResults.Intersect(yearResults);
}
public async Task<IEnumerable<Cat>> GetCatsByBreedOrBirthYear(string breed, int birthYear)
{
var breedResults = await _cat.GetByIndexedPropertyAsync("Breed", breed);
var yearResults = await _cat.GetByIndexedPropertyAsync("BirthYear", birthYear);
return breedResults.Union(yearResults);
}
Specify the tableName instead of using the class name
[TableName("Feline")]
public class Cat : ITableEntity
{
...
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Azure.Data.Tables (>= 12.6.0)
- Microsoft.Bcl.AsyncInterfaces (>= 6.0.0)
- Microsoft.Extensions.Options (>= 6.0.0)
- Newtonsoft.Json (>= 13.0.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on CheesyTot.AzureTables.SimpleIndex:
Package | Downloads |
---|---|
CheesyTot.AspNetCoreIdentity.AzureTables
An implementation of ASP.NET Core Identity stores for Azure Table Storage that uses CheesyTot.AzureTables.SimpleIndex |
GitHub repositories
This package is not used by any popular GitHub repositories.