PiBox.Plugins.Persistence.EntityFramework
1.0.79
dotnet add package PiBox.Plugins.Persistence.EntityFramework --version 1.0.79
NuGet\Install-Package PiBox.Plugins.Persistence.EntityFramework -Version 1.0.79
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="PiBox.Plugins.Persistence.EntityFramework" Version="1.0.79" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PiBox.Plugins.Persistence.EntityFramework --version 1.0.79
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: PiBox.Plugins.Persistence.EntityFramework, 1.0.79"
#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 PiBox.Plugins.Persistence.EntityFramework as a Cake Addin #addin nuget:?package=PiBox.Plugins.Persistence.EntityFramework&version=1.0.79 // Install PiBox.Plugins.Persistence.EntityFramework as a Cake Tool #tool nuget:?package=PiBox.Plugins.Persistence.EntityFramework&version=1.0.79
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
PiBox.Plugins.Persistence.EntityFramework
PiBox.Plugins.Persistence.EntityFramework is a plugin
that allows other PiBox components
to use the entityframework core to interact with certain databases
.
Installation
To install the nuget package follow these steps:
dotnet add package PiBox.Plugins.Persistence.EntityFramework
or add as package reference to your .csproj
<PackageReference Include="PiBox.Plugins.Persistence.EntityFramework" Version="" />
Appsettings.yml
Configure your appsettings.yml with these properties
Postgres for example
samplePostgresDb:
host: "localhost"
db: "samplePostgresDb"
port: "5432"
password: "postgres"
user: "postgres"
PluginReadmeTemplateConfig.cs
[Configuration("samplePostgresDb")]
public class NpgsqlDbConfiguration
{
public string Host { get; set; } = null!;
public int Port { get; set; }
public string Database { get; set; } = null!;
public string User { get; set; } = null!;
public string Password { get; set; } = null!;
}
Configuration in your plugin host
public class PluginReadme : IPluginEndpointsConfiguration, IPluginServiceConfiguration, IPluginApplicationConfiguration, IPluginControllerConfiguration, IPluginHealthChecksConfiguration
{
private readonly NpgsqlDbConfiguration _npgsqlDbConfiguration;
public PluginReadme(NpgsqlDbConfiguration npgsqlDbConfiguration)
{
_npgsqlDbConfiguration = npgsqlDbConfiguration;
}
public void ConfigureServices(IServiceCollection serviceCollection)
{
var connectionString = ConnectionStringBuilder(_npgsqlDbConfiguration);
serviceCollection.AddEfContext<WebHostSamplePluginDbContext>(options => options.UseNpgsql(connectionString));
}
public void ConfigureApplication(IApplicationBuilder applicationBuilder)
{
// ensure your database gets initialized setup your EFCore migrations in your project and call
applicationBuilder.ApplicationServices.GetRequiredService<WebHostSamplePluginDbContext>().Database.Migrate();
// or call
applicationBuilder.ApplicationServices.GetRequiredService<WebHostSamplePluginDbContext>().Database.EnsureCreated();
}
private static string ConnectionStringBuilder(NpgsqlDbConfiguration configuration)
{
return (new NpgsqlConnectionStringBuilder()
{ Host = configuration.Host, Database = configuration.Database, Username = configuration.User, Password = configuration.Password, Port = configuration.Port }).ConnectionString;
}
}
Usage
internal class SamplePluginDbContext : DbContext, IDbContext<MyPoco>
{
public SamplePluginDbContext(DbContextOptions<SamplePluginDbContext> options) : base(options) { }
public DbContext GetContext() => this;
public DbSet<MyPoco> GetSet() => Set<MyPoco>();
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<MyPoco>(e =>
{
e.HasKey(x => x.Id);
e.Property(x => x.Id).IsRequired();
});
base.OnModelCreating(modelBuilder);
}
}
public interface IExampleService
{
void DoStuff();
}
public class ExampleService : IExampleService
{
private readonly IReadRepository<MyPoco> _readRepository;
public ExampleService(IReadRepository<MyPoco> readRepository)
{
_readRepository = readRepository;
}
public async Task DoStuff()
{
// for example
var result = await _readRepository.FindByIdAsync();
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- OpenTelemetry.Extensions.Hosting (>= 1.7.0)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.0.0-beta.10)
- PiBox.Hosting.Abstractions (>= 1.0.79)
- PiBox.Plugins.Persistence.Abstractions (>= 1.0.79)
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 |
---|---|---|
1.0.79 | 40 | 12/20/2024 |
1.0.73 | 55 | 10/22/2024 |
1.0.66 | 145 | 10/15/2024 |
1.0.64 | 84 | 10/14/2024 |
1.0.61 | 82 | 10/1/2024 |
1.0.60 | 85 | 9/27/2024 |
1.0.54 | 90 | 4/30/2024 |
1.0.51 | 183 | 2/27/2024 |
1.0.49 | 58 | 2/27/2024 |
1.0.47 | 95 | 2/21/2024 |
1.0.45 | 74 | 2/20/2024 |
1.0.43 | 89 | 2/13/2024 |
1.0.41 | 79 | 2/13/2024 |
1.0.39 | 83 | 2/8/2024 |
1.0.38 | 72 | 2/8/2024 |
1.0.37 | 72 | 2/8/2024 |
1.0.35 | 75 | 2/2/2024 |
1.0.32 | 76 | 1/30/2024 |
1.0.25 | 153 | 12/27/2023 |
1.0.23 | 95 | 12/19/2023 |
1.0.22 | 69 | 12/19/2023 |
1.0.21 | 71 | 12/19/2023 |
1.0.19 | 82 | 12/11/2023 |
1.0.17 | 127 | 11/23/2023 |
1.0.7 | 81 | 11/23/2023 |
1.0.5 | 88 | 11/23/2023 |
1.0.3 | 90 | 11/23/2023 |
1.0.0 | 86 | 11/21/2023 |
0.9.9 | 82 | 11/21/2023 |
0.9.7 | 92 | 11/21/2023 |