我想知道在以下两个示例之间使用C#和SQL Server(实体框架)的最佳做法是什么:
1- 每次你想使用SQL服务器时打开连接并立即关闭它? (我使用实体框架使用声明)
2-开放连接一次,并且只要需要完成的所有任务需要,即使有代码不需要打开SQL连接,也要保持连接? (我会自己控制上下文而不使用本场景中的using语句)
我知道这个问题并不复杂,但我仍然是数据库和编程领域的新手。
非常感谢你的回答!
答案 0 :(得分:2)
尽快打开和关闭。让ADO.Net
连接池尽可能地减少实际连接到数据库的开销。只要您使用相同的连接字符串,关闭连接实际上不会关闭它。它只是将其发布回ADO.Net连接池。保持打开的时间越长(而不是在池中),池可能需要创建的实际连接越多,以便为数据库请求提供服务。
答案 1 :(得分:0)
主要取决于您正在设计的应用程序类型,但最好尽快关闭它们(但不一定在执行单个查询后立即关闭它,只需重新打开它后面的五行代码 - 重新打开它们连接也需要时间,而在高ping连接上,这可能会成为一种无法忍受的用户体验。)
每当您结束需要打开连接的任务(例如从数据库收集数据)并启动另一个任务(例如处理数据)或等待用户输入时,请务必关闭连接。请记住,您可以将连接作为参数传递给您可能正在调用的方法,以节省连接池。