Table of Contents

Class DbContextOptionsBuilderExtensions

Namespace
Trellis.EntityFrameworkCore
Assembly
Trellis.EntityFrameworkCore.dll

Extension methods for DbContextOptionsBuilder that register Trellis EF Core interceptors.

public static class DbContextOptionsBuilderExtensions
Inheritance
DbContextOptionsBuilderExtensions
Inherited Members

Methods

AddTrellisInterceptors(DbContextOptionsBuilder)

Adds Trellis EF Core interceptors to the DbContextOptionsBuilder. Non-generic overload for use with DbContextOptionsBuilder directly.

public static DbContextOptionsBuilder AddTrellisInterceptors(this DbContextOptionsBuilder optionsBuilder)

Parameters

optionsBuilder DbContextOptionsBuilder

The options builder.

Returns

DbContextOptionsBuilder

The same builder for chaining.

AddTrellisInterceptors(DbContextOptionsBuilder, TimeProvider?)

Adds Trellis EF Core interceptors to the DbContextOptionsBuilder with a custom TimeProvider. Non-generic overload for use with DbContextOptionsBuilder directly.

public static DbContextOptionsBuilder AddTrellisInterceptors(this DbContextOptionsBuilder optionsBuilder, TimeProvider? timeProvider)

Parameters

optionsBuilder DbContextOptionsBuilder

The options builder.

timeProvider TimeProvider

The time provider to use for EntityTimestampInterceptor timestamps. Defaults to System if null.

Returns

DbContextOptionsBuilder

The same builder for chaining.

AddTrellisInterceptors<TContext>(DbContextOptionsBuilder<TContext>)

Adds Trellis EF Core interceptors to the DbContextOptionsBuilder. Registers the MaybeQueryInterceptor, ScalarValueQueryInterceptor, Trellis.EntityFrameworkCore.AggregateETagInterceptor, and EntityTimestampInterceptor as singletons, enabling natural LINQ syntax with Maybe<T> properties, .Value access on scalar value objects, automatic optimistic concurrency ETag generation on aggregate saves, and automatic CreatedAt/LastModified timestamps.

public static DbContextOptionsBuilder<TContext> AddTrellisInterceptors<TContext>(this DbContextOptionsBuilder<TContext> optionsBuilder) where TContext : DbContext

Parameters

optionsBuilder DbContextOptionsBuilder<TContext>

The options builder.

Returns

DbContextOptionsBuilder<TContext>

The same builder for chaining.

Type Parameters

TContext

The DbContext type.

Examples

services.AddDbContext<MyDbContext>(options =>
    options.UseSqlite(connectionString).AddTrellisInterceptors());

Remarks

Uses a static singleton interceptor instance to avoid EF Core's ManyServiceProvidersCreatedWarning when multiple DbContext instances are created (common in integration tests).

AddTrellisInterceptors<TContext>(DbContextOptionsBuilder<TContext>, TimeProvider?)

Adds Trellis EF Core interceptors to the DbContextOptionsBuilder with a custom TimeProvider.

public static DbContextOptionsBuilder<TContext> AddTrellisInterceptors<TContext>(this DbContextOptionsBuilder<TContext> optionsBuilder, TimeProvider? timeProvider) where TContext : DbContext

Parameters

optionsBuilder DbContextOptionsBuilder<TContext>

The options builder.

timeProvider TimeProvider

The time provider to use for EntityTimestampInterceptor timestamps. Defaults to System if null.

Returns

DbContextOptionsBuilder<TContext>

The same builder for chaining.

Type Parameters

TContext

The DbContext type.