Namespace Ease.Repository.AzureTable
Classes
AzureTableEntityKey
Use this if/when you don't have the full strongly-typed entity, but you do have the PartitionKey and RowKey for operations that just need the key values.
AzureTableRepository<TContext, TEntity>
Base class for AzureTable-backed repositories.
AzureTableRepositoryConfig
May use directly, or use as a convenient base class for capturing config of a data model that spans multiple Azure Storage accounts. For example:
public class MainStorageRepositoryConfig : AzureTableRepositoryConfig
{
MainStorageRepositoryConfig(IConfiguration config) : base(config, "Main") { }
}
public class SecondaryStorageRepositoryConfig : AzureTableRepositoryConfig
{
MainStorageRepositoryConfig(IConfiguration config) : base(config, "Secondary") { }
}
Then your repositories can be differentiated by repository config, and the configuration properties themselves will be in separate sections, one under "Main:Azure:{stuff}" and one under "Secondary:Azure:{stuff}".
AzureTableRepositoryContext
AzureTableStoreFactory
AzureTableStoreWriter
AzureTableTrackableEntity
Entity base class required for use with AzureTableUnitOfWork... unfortunately the existing TableEntity class's properties are not virtual, and therefore can not be used with dynamic proxy.
Interfaces
IAzureTableRepository<TEntity>
AzureTable-backed repository classes should define their own interfaces in terms of this simplified interface.
IAzureTableRepositoryConfig
Interface for configuration for the underlying Azure Table store to be used by repositories.