首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Entity Framework Core是否默认配置了连接弹性?

Entity Framework Core是否默认配置了连接弹性?
EN

Stack Overflow用户
提问于 2020-04-27 00:57:39
回答 1查看 1.1K关注 0票数 2

我正在阅读through the documentation on connection resiliency in Entity Framework Core,了解到可以在配置服务的同时在ASP.NET核心中配置连接弹性:

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<PicnicContext>(
        options => options.UseSqlServer(
            "<connection string>",
            providerOptions => providerOptions.EnableRetryOnFailure()));
}

我注意到,对于其他服务,比如Azure Search客户端,默认情况下会启用重试机制。实体框架核心(3.1.3)是否也是这种情况,或者我是否需要显式调用providerOptions => providerOptions.EnableRetryOnFailure()

SqlServerDbContextOptionsBuilder documentation没有提供有关默认值的详细信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-27 01:20:10

失败时重试功能通过SqlServerRetryingExecutionStrategy实现。调用EnableRetryOnFailure基本上会将此策略配置为执行策略。

默认情况下,实体框架核心不会使用执行策略。或者更确切地说,默认的执行策略是NoopExecutionStrategy (在EF Core5中将重命名为NonRetryingExecutionStrategy ),它不做任何事情。

所以,没有默认的重试。而且这通常是一个深思熟虑的选择,不进行自动重试。默认情况下,查询会失败,错误会浮现出来,这样开发人员就可以处理它。如果应用程序是为重试而编写的,那么他们可以使用最适合的配置来启用功能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61444624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档