gpt4 book ai didi

c# - 我的连接会在 .NET Core 和 EF Core 中自动关闭,还是我需要在执行查询后关闭它们?

转载 作者:行者123 更新时间:2023-12-04 09:57:24 28 4
gpt4 key购买 nike

我是 .NET Core 和 EF Core 的新手。

我的数据库表中有一个句子,我必须像这样执行(使用 ADO.NET):

using (var command = context.Database.GetDbConnection().CreateCommand())
{
command.CommandText = "<<my sql sentence>>";
context.Database.OpenConnection();
using (var result = command.ExecuteReader())
{
....
}
}

我找到了 this documentation .

执行查询后是否需要关闭连接?我想我应该这样做(我认为),但我不知道是否有必要,或者它是否会自动关闭。

最佳答案

使用完SqlCommand就可以了,剩下的交给Entity framework或者ADO.NET。 SQL 连接使用 connection pooling ,这意味着连接保持打开状态,可以被后续查询重用。

更新:

SQL 连接存在于 DbContext 中,GetDbConnection() method's documentation说,它

Gets the underlying ADO.NET DbConnection for this DbContext.

这意味着,DbContext 有一个数据库连接,并且该连接由它管理(包括连接弹性等功能)。释放 DbContext 时,也会释放 SQL 连接。

关于c# - 我的连接会在 .NET Core 和 EF Core 中自动关闭,还是我需要在执行查询后关闭它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61895558/

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