- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 EFCore 将数据传输到后端数据库,我调用 SaveChanges
对于添加到数据集中的每一定数量的新对象,我从 EFCore 调试日志中注意到,每次我调用 SaveChanges
时,它都会关闭连接并打开一个新对象。 :
Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerConnection|DEBUG|Opening connection to database ...
Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerConnection|DEBUG|Beginning transaction with isolation level 'Unspecified'.
Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerConnection|DEBUG|Committing transaction
Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerConnection|DEBUG|Closing connection to database...
.... the logs repeats forever
DbContext
的整个生命周期中只使用一个连接? ?
最佳答案
你真的不需要改变它的工作方式,甚至根本不需要担心。默认情况下,SQL Server 连接只是放回到连接池中,因此实际上它不会关闭。打开一个新的只会捕获池中的下一个可用。
如果你真的想要,你可以通过在连接字符串中设置值来控制池,而我建议不要这样做,除非你真的知道你在做什么,这些是使用的主要属性(来自 MSDN ):
Connection Lifetime: When a connection is returned to the pool, its creation time is compared with the current time, and the connection is destroyed if that time span (in seconds) exceeds the value specified by Connection Lifetime. This is useful in clustered configurations to force load balancing between a running server and a server just brought online. A value of zero (0) will cause pooled connections to have the maximum time-out.
Connection Reset: Determines whether the database connection is reset when being removed from the pool. For Microsoft SQL Server version 7.0, setting to false avoids making an additional server round trip when obtaining a connection, but you must be aware that the connection state, such as database context, is not being reset.
Enlist: When true, the pooler automatically enlists the connection in the current transaction context of the creation thread if a transaction context exists.
Max Pool Size: The maximum number of connections allowed in the pool.
Min Pool Size: The minimum number of connections maintained in the pool.
Pooling: When true, the connection is drawn from the appropriate pool, or if necessary, created and added to the appropriate pool.
关于c# - EFCore 在 dbcontext 的生命周期内使用单个 dbconnect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45329463/
我正在将我们的 DAL 更改为 async DAL。 看着: await _conn.OpenAsync().ConfigureAwait(false); 我看到有一个用于打开连接的异步方法。但是为什
这是一个艰难的过程。使用完全相同的查询字符串,完全相同的以下代码: using (var db = new SqlConnection(queryString)) { await db.Open
我在网上搜索了一段时间。但是没有找到我的问题的明确答案。在连接到数据库时我应该使用“using”还是我可以直接使用 try-catch-finally?我的意思是: 我不知道是应该在每次完成与数据库的
要连接到 SQLite 数据库,相当简单:您将驱动程序和路径传递给 SQLite 文件。 其他 DBI - 兼容的数据库后端(PostgreSQL、MySQL 等),您可以传递给 dbConnect
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Close and Dispose - which to call? 我的数据层中的许多函数不受 try-c
我有一个名为 DatabaseHelper 的类,它包装了一个 DbConnection。为 using 语句设置此类的正确方法是什么?我已经实现了 IDisposible,但我不确定应该在何时何地调
我正在研究MySQL数据。我使用 dbConnect 函数连接到数据库并使用 dbReadTable 读取表。 我的问题是:如果我开始使用 tidyr 和 dplyr 等清理数据以使其整洁,这是否会更
我需要在数据库上执行一个存储过程。这是我到目前为止得到的有效方法: protected DbProviderFactory dbProviderFactory; this.dbProviderFact
我计划编写一个可以同时适用于 SQL Server 和 MySQL 的 DataConnection 库。 由于SqlConnection和MySqlConnection都是从DbConnection
我正在尝试连接到用户输入的服务器。当服务器不存在时,我想给最终用户一个快速反馈,以便他可以更正他输入的内容。 有什么方法可以在尝试连接之前测试服务器是否存在? 谢谢 最佳答案 您的 DBConnect
我有一个可以同时从数百个线程访问的单例数据库类。每个线程都有自己的连接。由于我无法控制线程数,所以我需要限制并发连接数。我决定使用如下所示的信号量。现在,连接总是在 using block 中分配,因
这是我从数据库中选择数据的函数: public DataTable SelectDataTable(string selectStatement, string connectionStrin
我正在尝试提高复杂数据库读取操作的性能。我发现一些代码,在有限的测试中,执行速度比以前使用各种技术(包括手动调整的存储过程)的尝试快得多。它使用 Dapper,但 Dapper 并不是主要的关注点。
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 2 年前。 Improve this qu
我在一个应用程序中找到了这段代码 Database database = DatabaseFactory.CreateDatabase("connection string"); DbConnecti
“EntityConnection 只能用关闭的 DbConnection 构造”这是我在尝试构建提供开放连接的实体连接时遇到的问题。有一个 transactionscope 打开,我不想打开一个新连
当您调用 DbConnection.GetSchema 时,您会为其提供您感兴趣的集合的字符串名称。我在任何地方都找不到集合列表。集合列表是不可变的还是因数据库类型(orcle、sql server
我有一个传递给函数的连接字符串,我需要基于这个字符串创建一个基于 DbConnection 的对象(即 SQLConnection、OracleConnection、OLEDbConnection 等
我正在尝试开始使用 sqlite + C#。我发现 SQLite-lib 不是标准库,因此我在每个引用中添加了它。 由于我更频繁地使用这个类,所以我考虑创建一个自己的类来处理所有事情。 现在,这是我的
我有一个如下所示的单例类,用于访问数据库连接 public class DBConnection { private static volatile DBConnection instance
我是一名优秀的程序员,十分优秀!