zws.Driver.GaussDB.DependencyInjection
8.0.0
dotnet add package zws.Driver.GaussDB.DependencyInjection --version 8.0.0
NuGet\Install-Package zws.Driver.GaussDB.DependencyInjection -Version 8.0.0
<PackageReference Include="zws.Driver.GaussDB.DependencyInjection" Version="8.0.0" />
<PackageVersion Include="zws.Driver.GaussDB.DependencyInjection" Version="8.0.0" />
<PackageReference Include="zws.Driver.GaussDB.DependencyInjection" />
paket add zws.Driver.GaussDB.DependencyInjection --version 8.0.0
#r "nuget: zws.Driver.GaussDB.DependencyInjection, 8.0.0"
#:package zws.Driver.GaussDB.DependencyInjection@8.0.0
#addin nuget:?package=zws.Driver.GaussDB.DependencyInjection&version=8.0.0
#tool nuget:?package=zws.Driver.GaussDB.DependencyInjection&version=8.0.0
GaussDB is the open source .NET data provider for PostgreSQL. It allows you to connect and interact with PostgreSQL server using .NET.
This package helps set up GaussDB in applications using dependency injection, notably ASP.NET applications. It allows easy configuration of your GaussDB connections and registers the appropriate services in your DI container.
For example, if using the ASP.NET minimal web API, simply use the following to register GaussDB:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddGaussDBDataSource("Host=pg_server;Username=test;Password=test;Database=test");
This registers a transient GaussDBConnection which can get injected into your controllers:
app.MapGet("/", async (GaussDBConnection connection) =>
{
await connection.OpenAsync();
await using var command = new GaussDBCommand("SELECT number FROM data LIMIT 1", connection);
return "Hello World: " + await command.ExecuteScalarAsync();
});
But wait! If all you want is to execute some simple SQL, just use the singleton GaussDBDataSource to execute a command directly:
app.MapGet("/", async (GaussDBDataSource dataSource) =>
{
await using var command = dataSource.CreateCommand("SELECT number FROM data LIMIT 1");
return "Hello World: " + await command.ExecuteScalarAsync();
});
GaussDBDataSource can also come in handy when you need more than one connection:
app.MapGet("/", async (GaussDBDataSource dataSource) =>
{
await using var connection1 = await dataSource.OpenConnectionAsync();
await using var connection2 = await dataSource.OpenConnectionAsync();
// Use the two connections...
});
The AddGaussDBDataSource method also accepts a lambda parameter allowing you to configure aspects of GaussDB beyond the connection string, e.g. to configure UseLoggerFactory and UseNetTopologySuite:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddGaussDBDataSource(
"Host=pg_server;Username=test;Password=test;Database=test",
builder => builder
.UseLoggerFactory(loggerFactory)
.UseNetTopologySuite());
Finally, starting with GaussDB and .NET 8.0, you can now register multiple data sources (and connections), using a service key to distinguish between them:
var builder = WebApplication.CreateBuilder(args);
builder.Services
.AddGaussDBDataSource("Host=localhost;Database=CustomersDB;Username=test;Password=test", serviceKey: DatabaseType.CustomerDb)
.AddGaussDBDataSource("Host=localhost;Database=OrdersDB;Username=test;Password=test", serviceKey: DatabaseType.OrdersDb);
var app = builder.Build();
app.MapGet("/", async ([FromKeyedServices(DatabaseType.OrdersDb)] GaussDBConnection connection)
=> connection.ConnectionString);
app.Run();
enum DatabaseType
{
CustomerDb,
OrdersDb
}
For more information, see the GaussDB documentation.
| 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
-
net8.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- zws.Driver.GaussDB (>= 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 |
|---|