IBeam.Repositories
2.9.0
dotnet add package IBeam.Repositories --version 2.9.0
NuGet\Install-Package IBeam.Repositories -Version 2.9.0
<PackageReference Include="IBeam.Repositories" Version="2.9.0" />
<PackageVersion Include="IBeam.Repositories" Version="2.9.0" />
<PackageReference Include="IBeam.Repositories" />
paket add IBeam.Repositories --version 2.9.0
#r "nuget: IBeam.Repositories, 2.9.0"
#:package IBeam.Repositories@2.9.0
#addin nuget:?package=IBeam.Repositories&version=2.9.0
#tool nuget:?package=IBeam.Repositories&version=2.9.0
IBeam.Repositories
IBeam.Repositories contains the core repository contracts and base implementations used by IBeam services.
dotnet add package IBeam.Repositories
When To Use This
- You are building an IBeam service and need a clean persistence boundary.
- You want CRUD, archive, soft-delete, and tenant-aware conventions.
- You want services to depend on repository abstractions instead of a specific database provider.
- You are implementing a new repository provider for Azure Tables, SQL, OrmLite, EF, or another store.
What This Package Contains
| Area | Type(s) | Purpose |
|---|---|---|
| Entity contracts | IEntity, ITenantEntity, IArchivableEntity, IDeletableEntity, IAllowHardDelete |
Defines common persistence fields and behavior. |
| Repository contracts | IRepositoryStore<T>, IBaseRepository<T>, IBaseRepositoryAsync<T>, IArchivableRepositoryAsync<T> |
Standard CRUD/archive interfaces used by service layers. |
| Base repositories | BaseRepository<T>, BaseRepositoryAsync<T> |
Shared repository behavior over a backing IRepositoryStore<T>. |
| Tenant context | ITenantContext, TenantContext |
Carries tenant identity into repository calls. |
| Options | RepositoryOptions |
Controls cache, ID generation, and soft-delete behavior. |
| Errors | repository exception types | Provides consistent validation/system failure behavior. |
| Batching | batch action models | Gives providers a common way to submit grouped changes. |
Architecture Fit
API <-- DTO/model object --> Service <-- Entity --> Repository
Repositories only manage one entity type. They should not call other repositories, enforce business permissions, write audit logs directly, or hydrate DTOs with external lookup data. That work belongs in the service layer.
Code Example
public sealed class Product : IEntity, ITenantEntity, IArchivableEntity, IDeletableEntity
{
public Guid Id { get; set; }
public Guid TenantId { get; set; }
public string Name { get; set; } = string.Empty;
public bool IsArchived { get; set; }
public bool IsDeleted { get; set; }
}
public sealed class ProductService
{
private readonly IBaseRepositoryAsync<Product> _products;
public ProductService(IBaseRepositoryAsync<Product> products)
{
_products = products;
}
public Task<Product?> GetAsync(Guid productId, CancellationToken ct)
=> _products.GetByIdAsync(productId, ct: ct);
}
Repository Options
| Setting | Default | Purpose |
|---|---|---|
EnableCache |
true |
Allows repository implementations to use cache where supported. |
IdGeneratedByRepository |
false |
When true, repositories may generate Guid IDs for new entities. |
DisableSoftDelete |
false |
When true, delete behavior may hard-delete instead of using IsDeleted. |
Data Storage
This package does not create tables, containers, or database schema. Physical storage comes from provider packages.
| Provider Package | Storage Type | Notes |
|---|---|---|
IBeam.Repositories.AzureTables |
Azure Table Storage | Generic repository table provider. |
IBeam.Repositories.OrmLite |
Relational databases through ServiceStack OrmLite | SQL-backed repository provider. |
Service Operations, Auditing, And Permissions
Repositories are below the service boundary. Permission checks and audit logging should wrap service calls, not raw repository calls. This keeps the service layer as the all-knowing gatekeeper for rules, logging, errors, and orchestration.
Extended Docs And Agent Guidance
- AI prompt:
.agent/prompt.md - Root implementation guide:
../.agent/implementation-guide.md - Service logging and audit:
../docs/service-logging-and-audit.md - Service operation permissions:
../docs/service-operation-permissions.md
Agents should keep repository code entity-focused and avoid circular service/repository dependencies.
Version Notes
- Targets
net10.0. - Package version is assigned by the repository release workflow.
| 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
- Microsoft.Extensions.Caching.Abstractions (>= 10.0.0)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on IBeam.Repositories:
| Package | Downloads |
|---|---|
|
IBeam.Utilities
Cross-cutting primitives and helpers used across the stack. Provides shared types for consistent error handling and auditing, plus small utilities that keep other packages lean and focused. |
|
|
IBeam.Services
Root services package that aggregates abstractions and core service implementations. |
|
|
IBeam.Repositories.AzureTables
IBeam modular framework components for .NET APIs and services. |
|
|
IBeam.Services.Logging
IBeam modular framework components for .NET APIs and services. |
|
|
IBeam.Repositories.OrmLite
IBeam modular framework components for .NET APIs and services. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.9.0 | 0 | 7/21/2026 |
| 2.8.2 | 0 | 7/21/2026 |
| 2.8.1 | 0 | 7/21/2026 |
| 2.8.0 | 0 | 7/21/2026 |
| 2.7.0 | 42 | 7/21/2026 |
| 2.6.0 | 87 | 7/20/2026 |
| 2.5.0 | 174 | 7/17/2026 |
| 2.4.2 | 139 | 7/16/2026 |
| 2.4.1 | 176 | 7/14/2026 |
| 2.4.0 | 205 | 6/24/2026 |
| 2.3.0 | 199 | 6/24/2026 |
| 2.2.0 | 210 | 6/23/2026 |
| 2.1.0 | 196 | 6/23/2026 |
| 2.0.68 | 197 | 6/23/2026 |
| 2.0.66 | 192 | 6/22/2026 |
| 2.0.65 | 198 | 6/22/2026 |
| 2.0.64 | 253 | 6/17/2026 |
| 2.0.63 | 203 | 6/16/2026 |
| 2.0.62 | 200 | 6/16/2026 |
| 2.0.57 | 313 | 6/8/2026 |