DeepCore.Core.EventBus.EF
2.0.2
dotnet add package DeepCore.Core.EventBus.EF --version 2.0.2
NuGet\Install-Package DeepCore.Core.EventBus.EF -Version 2.0.2
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="DeepCore.Core.EventBus.EF" Version="2.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DeepCore.Core.EventBus.EF --version 2.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: DeepCore.Core.EventBus.EF, 2.0.2"
#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 DeepCore.Core.EventBus.EF as a Cake Addin #addin nuget:?package=DeepCore.Core.EventBus.EF&version=2.0.2 // Install DeepCore.Core.EventBus.EF as a Cake Tool #tool nuget:?package=DeepCore.Core.EventBus.EF&version=2.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Deepcore.Core.EventBus.EF
1. Purpose
- Provide the ability to log all Integration Events into the database via Entity Framework Core (EF Core).
- Once the event is saved into the database via EF Core, the system should dispatch a task to publish all desired Integration Event in the database to the Event Bus.
- Tracking is the main purpose of this package.
2. Migration
dotnet ef migrations add 'Init' --startup-project services/service1/service1.csproj --context IntegrationEventLogDbContext
dotnet ef database update --startup-project services/service1/service1.csproj --context IntegrationEventLogDbContext
3. Setup
Install the latest nuget package from the nuget server or your local nuget repository.
Use the Mediator Pipeline Behaviour to intercept and process your logic.
Startup.cs
// Register db context
services.AddDbContext<IntegrationEventLogDbContext>(options =>
{
options.UseNpgsql(configuration.GetConnectionString("Default"), opts =>
{
// Auto config migration
opts.MigrationsAssembly(typeof(Startup).Assembly.FullName);
});
options.UseLoggerFactory(LoggerFactory.Create(builder => builder.AddConsole()));
});
// Register factory
services.AddTransient<Func<DbConnection, IIntegrationEventLogService>>(
sp => (DbConnection c) => new IntegrationEventLogService(c));
- Consumer.cs
private readonly IIntegrationEventLogService _eventLogService;
private readonly IntegrationEventLogDbContext _dbContext;
private readonly Func<DbConnection, IIntegrationEventLogService> _integrationEventLogServiceFactory;
public TestHandler(IEventStoreService<TestAggregateRoot> eventStoreService, IMapper mapper, ICurrentUserService currentUserService, ILoggerService loggerService, IEventBus eventBus, IntegrationEventLogDbContext dbContext, Func<DbConnection, IIntegrationEventLogService> integrationEventLogServiceFactory)
{
_eventStoreService = eventStoreService;
_mapper = mapper;
_currentUserService = currentUserService;
_loggerService = loggerService;
_eventBus = eventBus;
_dbContext = dbContext;
_eventLogService = integrationEventLogServiceFactory(_dbContext.Database.GetDbConnection());
_integrationEventLogServiceFactory = integrationEventLogServiceFactory;
}
- Method call
await _eventLogService.SaveEventAsync(new SubmittedTestIntegrationEvent("", "", ""), _dbContext.Database.BeginTransaction(), cancellationToken);
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 | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | 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.1
- DeepCore.Core.EventBus (>= 2.0.1)
- Microsoft.EntityFrameworkCore (>= 5.0.9)
- Microsoft.EntityFrameworkCore.Design (>= 5.0.9)
- Microsoft.EntityFrameworkCore.Relational (>= 5.0.9)
- Newtonsoft.Json (>= 13.0.1)
- Npgsql.EntityFrameworkCore.PostgreSQL (>= 5.0.7)
- System.ComponentModel.Annotations (>= 5.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.