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
optionsBuilderDbContextOptionsBuilderThe 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
optionsBuilderDbContextOptionsBuilderThe options builder.
timeProviderTimeProviderThe 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
optionsBuilderDbContextOptionsBuilder<TContext>The options builder.
Returns
- DbContextOptionsBuilder<TContext>
The same builder for chaining.
Type Parameters
TContextThe 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
optionsBuilderDbContextOptionsBuilder<TContext>The options builder.
timeProviderTimeProviderThe time provider to use for EntityTimestampInterceptor timestamps. Defaults to System if
null.
Returns
- DbContextOptionsBuilder<TContext>
The same builder for chaining.
Type Parameters
TContextThe DbContext type.