问题描述: 我使用的是EF core,而EF是有一个数据库重连策略的,通过SetExecutionStrategy
进行设置,大致的代码如下
public class EFConfiguration : DbConfiguration
{
public EFConfiguration()
{
SetExecutionStrategy(SqlProviderServices.ProviderInvariantName, () => new SqlServerExecutionStrategy(3, TimeSpan.FromSeconds(5)));
}
}
//这里的3表示重连多少次,5表示每次重连的时间间隔
而我的数据库上下文是这样的
using System;
using System.Collections.Generic;
using Dispenser.Data.Entities;
using Microsoft.EntityFrameworkCore;
namespace Dispenser.Data;
//而我这里不是DbConfiguration,而是DbContext,似乎无法在这里使用SetExecutionStrategy
public partial class MyDbContext : DbContext
{
private string _connectionString;
public MyDbContext (string connectionString)
{
_connectionString = connectionString;
}
public virtual DbSet<AutoUnload> AutoUnloads { get; set; }
。。。。
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(_connectionString);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.UseCollation("Chinese_Hong_Kong_Stroke_90_CI_AS");
。。。。
OnModelCreatingPartial(modelBuilder);
}
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
}
提出问题:
DbContext 里面是否可以使用SetExecutionStrategy,如果不行,我该在哪个地方进行设置呢?