实体框架:SQL Server 重新启动后的连接

发布于 2024-12-28 04:30:50 字数 249 浏览 2 评论 0原文

我能否确定实体框架验证从连接池获取的连接? 考虑这种情况:

  1. 一些 CRUD 操作正在运行;
  2. SQL服务器停止;
  3. CRUD 操作失败;
  4. SQL 服务器启动。

是否保证SQL Server启动后CRUD操作不会失败?

EF v1

提前感谢

upd:原来是ADO.NET 负责连接池,而不是EF。但总的来说,问题依然存在;

Can I be sure that Entity Framework validate connections got from the connection pool?
Consider the case:

  1. Some CRUD operations are running;
  2. SQL server stop;
  3. CRUD operations are failing;
  4. SQL server start.

Is it guaranteed that after SQL server start CRUD operations will not fail?

EF v1

Thanks in advance

upd: it turns out that ADO.NET is responsible for connection pooling, not EF. But in general the question remains;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半葬歌 2025-01-04 04:30:50

如果 SQL Server 停止,当前池中的所有连接都将被破坏。连接池不验证连接的状态。对于每个断开的连接,您很可能会遇到异常,但下一次调用将创建新连接,并且 CRUD 操作将再次工作。

如果您担心的是事务,则事务将无法在发生故障的 SQL 服务器中继续存在。因此,在 SQL Server 故障之前在事务中执行的 CUD 操作将被回滚。

If SQL Server stops all connections currently in pool will be broken. Connection pool doesn't validate the state of the connection. You will most probably get exception for each broken connection but next calls will create new connection and CRUD operations will work again.

If your concern is about transaction the transaction will not survive failed SQL server. So CUD operations executed in transaction prior to SQL server failure will be rolled back.

倾城月光淡如水﹏ 2025-01-04 04:30:50

您想如何保证 CRUD 操作不会失败......?
你的问题能说得更具体一些吗?

除了服务器重新启动之外,还有很多事情可能会出错,例如网络故障、数据库限制或简单的错误数据等等。

我认为不可能。

How do you want to guarantee that a CRUD operation does not fail...?
Can you be more specific in your question?

Besides a server restart there are many things that can go wrong, like network failure, database constraints, or simply wrong data and whatever.

Impossible in my opinion.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文