gpt4 book ai didi

c# - 在 .net 中人为地创建连接超时错误

转载 作者:太空宇宙 更新时间:2023-11-03 16:01:26 25 4
gpt4 key购买 nike

我正在使用 asp.net MVC 框架并使用 EntityFramework 连接到数据库。有时在连接到数据库时出现超时错误。这些错误非常罕见。

System.Data.Entity.Infrastructure.DbUpdateException:
An error occurred while updating the entries. See the inner exception for details. ---> System.Data.UpdateException: An error occurred while updating the entries.
See the inner exception for details. ---> System.Data.SqlClient.SqlException:
Timeout expired. The timeout period elapsed prior to
completion of the operation or the server is not responding.

var myList = new List<MyConnection>();
using (var db = new MyDb())
{
var activeConns = db.Connections
.Where(c => c.Key == tKey)
.Where(c => c.IsActive)
.ToList();
if (activeConns.Count > 0)
{
//Some custom logic
myList.add(conn);
}

return myList;
}

我没有设置任何连接超时时间。使用 Entity Framework 时有什么最佳实践吗?

我怎样才能人为地生成这种缺陷以便我可以测试我们的软件?

最佳答案

我们在代码库中处理这类事情的方式是使用 mock objects - 允许我们用仅用于测试的虚假实现替换真实的实现(例如,数据库)。

从客户端的角度来看,假的行为相同,但我们可以更好地控制测试错误等行为的行为(例如,在第 5 个请求时抛出超时错误)。

Mocking Entity Framework Context是另一个 SO 问题,它更详细地介绍了如何设置它,特别是针对 EntityFramework。

关于c# - 在 .net 中人为地创建连接超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21132177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com