Jazyk

DbContextOptionsBuilder Třída

Definice

Poskytuje jednoduchou plochu rozhraní API pro konfiguraci DbContextOptions. Databáze (a další rozšíření) obvykle definují metody rozšíření pro tento objekt, které umožňují konfigurovat připojení k databázi (a další možnosti), které se mají použít pro kontext.

public class DbContextOptionsBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IDbContextOptionsBuilderInfrastructure
[System.Runtime.CompilerServices.Nullable(0)]
public class DbContextOptionsBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IDbContextOptionsBuilderInfrastructure
type DbContextOptionsBuilder = class
    interface IDbContextOptionsBuilderInfrastructure
[<System.Runtime.CompilerServices.Nullable(0)>]
type DbContextOptionsBuilder = class
    interface IDbContextOptionsBuilderInfrastructure
Public Class DbContextOptionsBuilder
Implements IDbContextOptionsBuilderInfrastructure
Dědičnost
DbContextOptionsBuilder
Odvozené
Atributy
Implementuje

Poznámky

Můžete použít DbContextOptionsBuilder ke konfiguraci kontextu přepsáním OnConfiguring(DbContextOptionsBuilder) nebo vytvořením DbContextOptions externě a jeho předáním do konstruktoru kontextu.

Další informace a příklady najdete v tématu Použití DbContextOptions .

Konstruktory

Název Description
DbContextOptionsBuilder()

Inicializuje novou instanci DbContextOptionsBuilder třídy bez nastavení možností.

DbContextOptionsBuilder(DbContextOptions)

Inicializuje novou instanci DbContextOptionsBuilder třídy pro další konfiguraci dané DbContextOptions.

Vlastnosti

Název Description
IsConfigured

Získá hodnotu označující, zda byly nakonfigurovány některé možnosti.

Options

Získá nakonfigurované možnosti.

Metody

Název Description
AddInterceptors(IEnumerable<IInterceptor>)

Přidá IInterceptor instance do instancí zaregistrovaných v kontextu.

AddInterceptors(IInterceptor[])

Přidá IInterceptor instance do instancí zaregistrovaných v kontextu.

ConfigureLoggingCacheTime(TimeSpan)

Konfiguruje, jak dlouho EF Core bude ukládat konfiguraci protokolování do mezipaměti v určitých vysoce výkonných cestách. Díky tomu ef Core přeskočí potenciálně nákladné kontroly protokolování, ale znamená to, že změny protokolování za běhu (např. registrace nového DiagnosticListener se nemusí vzít v úvahu hned).

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

Konfiguruje chování modulu runtime upozornění generovaných rozhraním Entity Framework. Pro každý typ upozornění můžete nastavit výchozí chování a chování.

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

Konfiguruje chování modulu runtime upozornění generovaných rozhraním Entity Framework. Pro každý typ upozornění můžete nastavit výchozí chování a chování.

EnableDetailedErrors(Boolean)

Umožňuje podrobné chyby při zpracování výjimek hodnot dat, ke kterým dochází při zpracování výsledků dotazu úložiště. K takovým chybám nejčastěji dochází kvůli chybné konfiguraci vlastností entity. Například pokud je vlastnost nakonfigurovaná tak, aby byla typu int, ale podkladová data v úložišti jsou ve skutečnosti typu "string", při zpracování hodnoty dat se vygeneruje výjimka za běhu. Pokud je tato možnost povolená a dojde k chybě dat, vygenerovaná výjimka bude obsahovat podrobnosti o konkrétní vlastnosti entity, která chybu vygenerovala.

EnableSensitiveDataLogging()

Umožňuje zahrnutí aplikačních dat do zpráv o výjimkách, protokolování atd. To může zahrnovat hodnoty přiřazené vlastnostem instancí entit, hodnoty parametrů pro příkazy odesílané do databáze a další taková data. Tento příznak byste měli povolit pouze v případě, že máte založena na citlivosti těchto dat příslušná bezpečnostní opatření.

EnableSensitiveDataLogging(Boolean)

Umožňuje zahrnutí aplikačních dat do zpráv o výjimkách, protokolování atd. To může zahrnovat hodnoty přiřazené vlastnostem instancí entit, hodnoty parametrů pro příkazy odesílané do databáze a další taková data. Tento příznak byste měli povolit pouze v případě, že máte založena na citlivosti těchto dat příslušná bezpečnostní opatření.

EnableServiceProviderCaching(Boolean)

Povolí nebo zakáže ukládání interních poskytovatelů služeb do mezipaměti. Zakázání ukládání do mezipaměti může výrazně ovlivnit výkon a mělo by se použít pouze v testovacích scénářích, které vytvářejí mnoho poskytovatelů služeb pro izolaci testů.

EnableThreadSafetyChecks(Boolean)

Zakáže detekci souběžnosti, která detekuje mnoho případů chybného souběžného použití DbContext instance a způsobí vyvolání informativní výjimky. To poskytuje menší zlepšení výkonu, ale pokud DbContext se instance používá souběžně, chování nebude definováno a program může selhat nepředvídatelnými způsoby.

LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>)

Zaznamenává události filtrované zadaným delegátem vlastního filtru. Filtr by měl vrátit hodnotu true, aby se zpráva protokoluje, nebo aby se vyfiltruje z protokolu nepravda.

LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>)

Zaznamená zadané události pomocí zadané akce. Slouží optionsBuilder.LogTo(Console.WriteLine, new[] { CoreEventId.ContextInitialized }) například k protokolování ContextInitialized události do konzoly.

LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>)

Protokoluje všechny události v zadaných kategoriích pomocí zadané akce. Slouží optionsBuilder.LogTo(Console.WriteLine, new[] { DbLoggerCategory.Infrastructure.Name }) například k protokolování všech událostí v DbLoggerCategory.Infrastructure kategorii.

LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>)

Protokoly se používají zadanou akci. Můžete optionsBuilder.LogTo(Console.WriteLine) se například přihlásit ke konzole.

LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>)

Zaznamenává události do vlastního delegáta protokolovacího nástroje filtrovaného vlastním delegátem filtru. Filtr by měl vrátit hodnotu true, aby se zpráva protokoluje, nebo aby se vyfiltruje z protokolu nepravda.

ReplaceService<TService,TCurrentImplementation,TNewImplementation>()

Nahrazuje interní implementaci entity Framework konkrétní implementace kontraktu služby jinou implementací.

ReplaceService<TService,TImplementation>()

Nahradí všechny interní implementace entity Framework kontraktu služby jinou implementací.

UseApplicationServiceProvider(IServiceProvider)

Nastaví, IServiceProvider ze kterých aplikačních služeb se budou získávat. To se provádí automaticky při použití AddDbContext nebo AddDbContextPool, takže je vzácné, že tuto metodu je potřeba volat.

UseAsyncSeeding(Func<DbContext,Boolean,CancellationToken,Task>)

Nakonfiguruje počáteční metodu tak, aby se spustila po EnsureCreatedAsync(CancellationToken) zavolání nebo po provedení asynchronně použitých migrací. Vyvolá se, i když nebyly provedeny žádné změny úložiště.

UseInternalServiceProvider(IServiceProvider)

IServiceProvider Nastaví, ze kterého by měl kontext přeložit všechny své služby. Ef vytvoří a spravuje poskytovatele služeb, pokud není zadán žádný.

UseLoggerFactory(ILoggerFactory)

ILoggerFactory Nastaví, který se použije k vytvoření ILogger instancí pro protokolování provedené tímto kontextem.

UseMemoryCache(IMemoryCache)

IMemoryCache Nastaví použití pro ukládání dotazů do mezipaměti v tomto kontextu.

UseModel(IModel)

Nastaví model, který se má použít pro kontext. Pokud je model nastavený, OnModelCreating(ModelBuilder) pak se nespustí.

UseQueryTrackingBehavior(QueryTrackingBehavior)

Nastaví chování sledování pro dotazy LINQ spuštěné v kontextu. Zakázání sledování změn je užitečné pro scénáře jen pro čtení, protože zabraňuje režii při nastavování sledování změn pro každou instanci entity. Sledování změn byste neměli zakázat, pokud chcete manipulovat s instancemi entit a zachovat tyto změny v databázi pomocí SaveChanges().

UseRootApplicationServiceProvider()

Vyřeší kořen IServiceProvider z zprostředkovatele aplikačních služeb s vymezeným oborem. Kořenový zprostředkovatel lze použít k získání jednoúčelových aplikačních služeb z interních služeb singleton.

UseRootApplicationServiceProvider(IServiceProvider)

Nastaví kořen IServiceProvider , ze kterého lze získat jednoúčelové aplikační služby z interních služeb singleton.

UseSeeding(Action<DbContext,Boolean>)

Nakonfiguruje počáteční metodu tak, aby se spustila po EnsureCreated() zavolání nebo po použití migrací. Vyvolá se, i když nebyly provedeny žádné změny úložiště.

Explicitní implementace rozhraní

Název Description
IDbContextOptionsBuilderInfrastructure.AddOrUpdateExtension<TExtension>(TExtension)

Přidá dané rozšíření do možností. Pokud již existující rozšíření stejného typu existuje, nahradí se.

IDbContextOptionsBuilderInfrastructure.RemoveExtension<TExtension>()

Odebere rozšíření daného typu z možností. Pokud neexistuje žádné rozšíření daného typu, jedná se o no-op.

Metody rozšíření

Název Description
ConfigureSqlEngine(DbContextOptionsBuilder, Action<SqlEngineDbContextOptionsBuilder>)

Konfiguruje kontext pro připojení k libovolné SQL Server, Azure SQL, Azure Synapse databázím, ale bez počátečního nastavení žádného DbConnection nebo připojovací řetězec.

UseAzureSql(DbContextOptionsBuilder, Action<AzureSqlDbContextOptionsBuilder>)

Konfiguruje kontext pro připojení k databázi Azure SQL, ale bez počátečního nastavení žádné DbConnection nebo připojovací řetězec.

UseAzureSql(DbContextOptionsBuilder, DbConnection, Action<AzureSqlDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k Azure SQL databázi.

UseAzureSql(DbContextOptionsBuilder, DbConnection, Boolean, Action<AzureSqlDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k Azure SQL databázi.

UseAzureSql(DbContextOptionsBuilder, String, Action<AzureSqlDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k Azure SQL databázi.

UseAzureSynapse(DbContextOptionsBuilder, Action<AzureSynapseDbContextOptionsBuilder>)

Konfiguruje kontext pro připojení k databázi Azure Synapse, ale bez počátečního nastavení žádného DbConnection nebo připojovací řetězec.

UseAzureSynapse(DbContextOptionsBuilder, DbConnection, Action<AzureSynapseDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi Azure Synapse.

UseAzureSynapse(DbContextOptionsBuilder, DbConnection, Boolean, Action<AzureSynapseDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi Azure Synapse.

UseAzureSynapse(DbContextOptionsBuilder, String, Action<AzureSynapseDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi Azure Synapse.

UseChangeTrackingProxies(DbContextOptionsBuilder, Boolean, Boolean)

Zapne vytváření proxy serverů sledování změn.

UseCosmos(DbContextOptionsBuilder, Action<CosmosDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi Azure Cosmos. Podrobnosti o připojení je potřeba zadat v samostatném volání.

UseCosmos(DbContextOptionsBuilder, String, String, Action<CosmosDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi Azure Cosmos.

UseCosmos(DbContextOptionsBuilder, String, String, String, Action<CosmosDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi Azure Cosmos.

UseCosmos(DbContextOptionsBuilder, String, TokenCredential, String, Action<CosmosDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi Azure Cosmos.

UseInMemoryDatabase(DbContextOptionsBuilder, Action<InMemoryDbContextOptionsBuilder>)
Zastaralé.
Zastaralé.

Nakonfiguruje kontext pro připojení ke starší sdílené databázi v paměti. Tato metoda je zastaralá. Místo toho použijte UseInMemoryDatabase(DbContextOptionsBuilder, String, Action<InMemoryDbContextOptionsBuilder>).

UseInMemoryDatabase(DbContextOptionsBuilder, String, Action<InMemoryDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k pojmenované databázi v paměti. Databáze v paměti se sdílí všude, kde se používá stejný název, ale pouze pro daného poskytovatele služeb. Pokud chcete použít stejnou databázi v paměti napříč poskytovateli služeb, zavolejte UseInMemoryDatabase(DbContextOptionsBuilder, String, InMemoryDatabaseRoot, Action<InMemoryDbContextOptionsBuilder>) předání sdílené InMemoryDatabaseRoot databáze, na které se má databáze rootovat.

UseInMemoryDatabase(DbContextOptionsBuilder, String, InMemoryDatabaseRoot, Action<InMemoryDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k pojmenované databázi v paměti. Databáze v paměti se sdílí všude, kde se používá stejný název, ale pouze pro daného poskytovatele služeb.

UseLazyLoadingProxies(DbContextOptionsBuilder, Action<LazyLoadingProxiesOptionsBuilder>)

Zapne vytváření opožděných načítání proxy serverů.

UseLazyLoadingProxies(DbContextOptionsBuilder, Boolean)

Zapne vytváření opožděných načítání proxy serverů.

UseSqlite(DbContextOptionsBuilder, Action<SqliteDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi SQLite, ale bez počátečního nastavení žádného DbConnection nebo připojovací řetězec.

UseSqlite(DbContextOptionsBuilder, DbConnection, Action<SqliteDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi SQLite.

UseSqlite(DbContextOptionsBuilder, DbConnection, Boolean, Action<SqliteDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi SQLite.

UseSqlite(DbContextOptionsBuilder, String, Action<SqliteDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi SQLite.

UseSqlServer(DbContextOptionsBuilder, Action<SqlServerDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi SQL Server, ale bez počátečního nastavení žádné DbConnection nebo připojovací řetězec.

UseSqlServer(DbContextOptionsBuilder, DbConnection, Action<SqlServerDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi SQL Server.

UseSqlServer(DbContextOptionsBuilder, DbConnection, Boolean, Action<SqlServerDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi SQL Server.

UseSqlServer(DbContextOptionsBuilder, String, Action<SqlServerDbContextOptionsBuilder>)

Nakonfiguruje kontext pro připojení k databázi SQL Server.

Platí pro