Valir.EntityFrameworkCore
0.1.1
Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Valir.EntityFrameworkCore --version 0.1.1
NuGet\Install-Package Valir.EntityFrameworkCore -Version 0.1.1
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="Valir.EntityFrameworkCore" Version="0.1.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Valir.EntityFrameworkCore" Version="0.1.1" />
<PackageReference Include="Valir.EntityFrameworkCore" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Valir.EntityFrameworkCore --version 0.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Valir.EntityFrameworkCore, 0.1.1"
#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.
#:package Valir.EntityFrameworkCore@0.1.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Valir.EntityFrameworkCore&version=0.1.1
#tool nuget:?package=Valir.EntityFrameworkCore&version=0.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Valir
A modular .NET distributed framework for background jobs and event-driven architectures.
Features
- At-Least-Once Delivery with idempotency keys
- Priority Queues - higher priority jobs processed first
- Batch Operations - enqueue thousands of jobs efficiently
- Graceful Shutdown - drain mode for zero job loss
- Transactional Outbox - atomic job creation with your DB
- Distributed Locks - Redis-backed coordination
- Rate Limiting - sliding window algorithm
- OpenTelemetry - native tracing support
Quick Start
dotnet add package Valir.Redis
dotnet add package Valir.AspNet
Configure Services
builder.Services.AddValir(options =>
{
options.RedisConnectionString = "localhost:6379";
});
Enqueue a Job
app.MapPost("/jobs", async (IJobQueue queue) =>
{
byte[] payload = JsonSerializer.SerializeToUtf8Bytes(new { Email = "user@example.com" });
string jobId = await queue.EnqueueAsync("send-email", payload);
return Results.Ok(new { JobId = jobId });
});
Run the Worker
dotnet run --project samples/Valir.Sample.Worker -- --redis localhost:6379
Packages
| Package | Description |
|---|---|
| Valir.Abstractions | Core interfaces (IJobQueue, IEventBroker) |
| Valir.Core | Worker runtime, retry policies |
| Valir.Redis | Redis job queue implementation |
| Valir.AspNet | ASP.NET Core integration |
| Valir.EntityFrameworkCore | Transactional Outbox pattern |
| Valir.Brokers.Kafka | Apache Kafka adapter |
| Valir.Brokers.RabbitMQ | RabbitMQ adapter |
| Valir.Brokers.AzureSB | Azure Service Bus adapter |
Configuration
builder.Services.AddValir(options =>
{
options.RedisConnectionString = "localhost:6379";
options.KeyPrefix = "valir:";
options.Concurrency = 4;
options.DefaultMaxAttempts = 3;
options.RetryBaseDelay = TimeSpan.FromSeconds(10);
options.DefaultVisibilityTimeout = TimeSpan.FromSeconds(30);
});
Event Bus
Kafka
builder.Services.AddValirKafka(options =>
{
options.BootstrapServers = "localhost:9092";
options.GroupId = "my-service";
});
RabbitMQ
builder.Services.AddValirRabbitMQ(options =>
{
options.HostName = "localhost";
options.UserName = "guest";
options.Password = "guest";
});
Azure Service Bus
builder.Services.AddValirAzureServiceBus(options =>
{
options.ConnectionString = "Endpoint=sb://...";
});
Transactional Outbox
builder.Services.AddValirOutbox<AppDbContext>();
// Jobs are written to outbox table (same transaction)
await _outboxQueue.EnqueueAsync("process-order", payload);
await _context.SaveChangesAsync(); // Atomic!
Documentation
License
MIT
| 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- Microsoft.EntityFrameworkCore (>= 10.0.2)
- Microsoft.EntityFrameworkCore.Relational (>= 10.0.2)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.2)
- Valir.Abstractions (>= 0.1.1)
- Valir.Core (>= 0.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.