# AspireDuckDBExtensions Methods

- Package: [CommunityToolkit.Aspire.DuckDB.NET.Data](/reference/api/csharp/communitytoolkit.aspire.duckdb.net.data.md)
- Type: [AspireDuckDBExtensions](/reference/api/csharp/communitytoolkit.aspire.duckdb.net.data/aspireduckdbextensions.md)
- Kind: `Methods`
- Members: `2`

Provides extension methods for registering DuckDB-related services in an `Hosting.IHostApplicationBuilder`.

<a id="addduckdbconnection"></a>
<a id="addduckdbconnection-ihostapplicationbuilder-string-action-duckdbconnectionsettings"></a>

## AddDuckDBConnection(IHostApplicationBuilder, string, Action<DuckDBConnectionSettings>)

- Name: `AddDuckDBConnection(IHostApplicationBuilder, string, Action<DuckDBConnectionSettings>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d479e13473b1d29d06b974f144a0049289a3cb5c/src/CommunityToolkit.Aspire.DuckDB.NET.Data/AspireDuckDBExtensions.cs#L28)

Registers `Data.DuckDBConnection` as scoped in the services provided by the `builder`.

```csharp
public static class AspireDuckDBExtensions
{
    public static void AddDuckDBConnection(
        this IHostApplicationBuilder builder,
        string name,
        Action<DuckDBConnectionSettings>? configureSettings = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `name` (`string`)
  The connection name to use to find a connection string.
- `configureSettings` (`Action<DuckDBConnectionSettings>`) `optional`
  An optional method that can be used for customizing the [DuckDBConnectionSettings](/reference/api/csharp/communitytoolkit.aspire.duckdb.net.data/duckdbconnectionsettings.md). It's invoked after the settings are read from the configuration.

## Exceptions

- `InvalidOperationException` -- If required ConnectionString is not provided in configuration section.

## Remarks

Reads the configuration from "Aspire:DuckDB:Client" section.

<a id="addkeyedduckdbconnection"></a>
<a id="addkeyedduckdbconnection-ihostapplicationbuilder-string-action-duckdbconnectionsettings"></a>

## AddKeyedDuckDBConnection(IHostApplicationBuilder, string, Action<DuckDBConnectionSettings>)

- Name: `AddKeyedDuckDBConnection(IHostApplicationBuilder, string, Action<DuckDBConnectionSettings>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d479e13473b1d29d06b974f144a0049289a3cb5c/src/CommunityToolkit.Aspire.DuckDB.NET.Data/AspireDuckDBExtensions.cs#L42)

Registers `Data.DuckDBConnection` as keyed scoped for the given `name` in the services provided by the `builder`.

```csharp
public static class AspireDuckDBExtensions
{
    public static void AddKeyedDuckDBConnection(
        this IHostApplicationBuilder builder,
        string name,
        Action<DuckDBConnectionSettings>? configureSettings = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `name` (`string`)
  The connection name to use to find a connection string.
- `configureSettings` (`Action<DuckDBConnectionSettings>`) `optional`
  An optional method that can be used for customizing the [DuckDBConnectionSettings](/reference/api/csharp/communitytoolkit.aspire.duckdb.net.data/duckdbconnectionsettings.md). It's invoked after the settings are read from the configuration.

## Exceptions

- `InvalidOperationException` -- If required ConnectionString is not provided in configuration section.

## Remarks

Reads the configuration from "Aspire:DuckDB:Client" section.
