.net core 如何在EF Core 2.2中为Oracle设置执行策略?
我想通过使用DbContext注入在Entity Framework Core 2.2中为Oracle设置执行策略。我正在使用NuGet包Oracle.EntityFrameworkCore连接到Oracle DB.net core 如何在EF Core 2.2中为Oracle设置执行策略?,.net-core,entity-framework-core,.net Core,Entity Framework Core,我想通过使用DbContext注入在Entity Framework Core 2.2中为Oracle设置执行策略。我正在使用NuGet包Oracle.EntityFrameworkCore连接到Oracle DB services.AddDbContext<MyContext>(options => { options.UseOracle(configuration.GetConnectionString("MyConnection")
services.AddDbContext<MyContext>(options =>
{
options.UseOracle(configuration.GetConnectionString("MyConnection"), oracleOptionsAction: oracleOptions =>
{
oracleOptions.ExecutionStrategy(x =>
new MyExecutionStrategy();
});
});
DbExecutionStrategy类不存在于dotnet core中,仅存在于dotnet中。您必须实现抽象类ExecutionStrategy。 自定义执行策略类必须以以下方式定义:
public class MyExecutionStrategy : ExecutionStrategy
{
public MyExecutionStrategy(ExecutionStrategyDependencies dependencies, int maxRetryCount, TimeSpan maxRetryDelay)
: base(dependencies, maxRetryCount, maxRetryDelay)
{
}
protected override bool ShouldRetryOn(Exception exception)
{
return true;
}
}
然后,依赖项注入部分:
services.AddDbContext(options =>
{
options.UseOracle(configuration.GetConnectionString("MyConnection"), oracleOptionsAction: oracleOptions =>
{
oracleOptions.ExecutionStrategy(dependencies =>
new MyExecutionStrategy(
dependencies,
retryCount,
retryDelay));
});
});
DbExecutionStrategy类不存在于dotnet core中,仅存在于dotnet中。您必须实现抽象类ExecutionStrategy。 自定义执行策略类必须以以下方式定义:
public class MyExecutionStrategy : ExecutionStrategy
{
public MyExecutionStrategy(ExecutionStrategyDependencies dependencies, int maxRetryCount, TimeSpan maxRetryDelay)
: base(dependencies, maxRetryCount, maxRetryDelay)
{
}
protected override bool ShouldRetryOn(Exception exception)
{
return true;
}
}
然后,依赖项注入部分:
services.AddDbContext(options =>
{
options.UseOracle(configuration.GetConnectionString("MyConnection"), oracleOptionsAction: oracleOptions =>
{
oracleOptions.ExecutionStrategy(dependencies =>
new MyExecutionStrategy(
dependencies,
retryCount,
retryDelay));
});
});