Epam.Kafka.PubSub.EntityFrameworkCore
2.3.136-rc
Prefix Reserved
See the version list below for details.
dotnet add package Epam.Kafka.PubSub.EntityFrameworkCore --version 2.3.136-rc
NuGet\Install-Package Epam.Kafka.PubSub.EntityFrameworkCore -Version 2.3.136-rc
<PackageReference Include="Epam.Kafka.PubSub.EntityFrameworkCore" Version="2.3.136-rc" />
paket add Epam.Kafka.PubSub.EntityFrameworkCore --version 2.3.136-rc
#r "nuget: Epam.Kafka.PubSub.EntityFrameworkCore, 2.3.136-rc"
// Install Epam.Kafka.PubSub.EntityFrameworkCore as a Cake Addin #addin nuget:?package=Epam.Kafka.PubSub.EntityFrameworkCore&version=2.3.136-rc&prerelease // Install Epam.Kafka.PubSub.EntityFrameworkCore as a Cake Tool #tool nuget:?package=Epam.Kafka.PubSub.EntityFrameworkCore&version=2.3.136-rc&prerelease
Epam.Kafka.PubSub.EntityFrameworkCore
About
Epam.Kafka.PubSub.EntityFrameworkCore package provides entity framework core implementation for key abstractions defined in Epam.Kafka.PubSub.
Key Features
- Base abstract classes
DbContextSubscriptionHandler<TKey, TValue, TContext>
,DbContextEntitySubscriptionHandler<TKey, TValue, TContext TEntity>
to help with implementation ofISubscriptionHandler<TKey, TValue>
that read data from KAFKA topics and save it to database usingDbContext
. - Default implementation of
IExternalOffsetsStorage
that store offsets in database viaDbContext
.TryAddKafkaDbContextState
extension method to register it inIServiceCollection
. - Base abstract classes
DbContextPublicationHandler<TKey, TValue, TEntity, TContext>
andDbContextEntityPublicationHandler<TKey, TValue, TEntity, TContext>
to help with implementation ofIPublicationHandler<TKey, TValue>
that read data from database usingDbContext
and publish it to kafka topics.
How to Use
Store subscription offsets
Prepare context.
public class SampleDbContext : DbContext, IKafkaStateDbContext
{
public DbSet<KafkaTopicState> KafkaTopicStates => this.Set<KafkaTopicState>();
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.AddKafkaState();
}
}
Register services and setup topic partition assignment and offsets storage for subscription.
services.TryAddKafkaDbContextState<SampleDbContext>();
KafkaBuilder kafkaBuilder = services.AddKafka();
kafkaBuilder.AddSubscription<string, KafkaEntity, SubscriptionHandlerSample>("Sample")
.WithSubscribeAndExternalOffsets();
Publish data from database to kafka
Optionally derive entity from IKafkaPublicationEntity
interface to use default state management.
public class SamplePublicationEntity : IKafkaPublicationEntity
{
public KafkaPublicationState KafkaPubState { get; set; }
public DateTime KafkaPubNbf { get; set; }
}
Create publication handler derived from DbContextEntityPublicationHandler<TKey, TValue, TEntity, TContext>
for entity with default state management or from DbContextPublicationHandler<TKey, TValue, TEntity, TContext>
for custom state management.
Setup publication
KafkaBuilder kafkaBuilder = services.AddKafka();
kafkaBuilder.AddPublication<string, KafkaEntity, SamplePublicationHandler>("Sample");
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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. |
-
.NETStandard 2.0
- Epam.Kafka.PubSub (>= 2.3.136-rc)
- Microsoft.EntityFrameworkCore (>= 3.1.32)
-
net6.0
- Epam.Kafka.PubSub (>= 2.3.136-rc)
- Microsoft.EntityFrameworkCore (>= 6.0.0)
-
net8.0
- Epam.Kafka.PubSub (>= 2.3.136-rc)
- Microsoft.EntityFrameworkCore (>= 8.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.
Version | Downloads | Last updated |
---|---|---|
2.3.140 | 765 | 7/15/2024 |
2.3.138-rc | 55 | 7/15/2024 |
2.3.136-rc | 62 | 7/15/2024 |
2.3.129-rc | 63 | 7/11/2024 |
2.3.127-rc | 70 | 7/10/2024 |
2.3.119-rc | 59 | 7/9/2024 |
2.3.117-rc | 72 | 7/9/2024 |
2.3.114-rc | 59 | 7/8/2024 |
2.3.113-rc | 54 | 7/8/2024 |
2.3.109-rc | 54 | 7/8/2024 |
2.3.108-rc | 73 | 7/5/2024 |
2.3.104-rc | 79 | 6/28/2024 |
2.3.98-rc | 74 | 6/27/2024 |
2.3.96-rc | 70 | 6/26/2024 |
2.3.94-rc | 67 | 6/26/2024 |
2.3.92-rc | 65 | 6/25/2024 |
2.3.87-rc | 61 | 6/19/2024 |
2.3.85-rc | 62 | 6/19/2024 |
2.2.84 | 91 | 6/19/2024 |
2.2.80-rc | 98 | 6/17/2024 |
2.2.78-rc | 66 | 6/14/2024 |
2.2.61-rc | 60 | 6/11/2024 |
2.1.55 | 114 | 6/7/2024 |
2.1.52-rc | 59 | 6/7/2024 |
2.1.51-rc | 63 | 6/7/2024 |
2.1.49-rc | 66 | 6/6/2024 |
2.1.47-rc | 69 | 6/4/2024 |
2.1.45-rc | 95 | 6/4/2024 |
2.1.41-rc | 82 | 5/29/2024 |
2.1.38-rc | 64 | 5/29/2024 |
2.0.36 | 190 | 4/8/2024 |
2.0.34-rc | 84 | 4/8/2024 |
2.0.32-rc | 71 | 4/5/2024 |
2.0.0-rc | 61 | 4/5/2024 |