Dapper是否应该使用&Q;USING&Q;语句?语句、Dapper、amp、USING

2023-09-04 01:58:27 作者:比纸薄的情

我见过有人在做什么的例子:

IDbConnection db = new MySqlConnection(conn);

var people = db.Query<People>("SELECT * FROM PEOPLE").ToList();

或以上是一种不好的做法,是否应该使用如下语句输入所有查询:

using (var db = new MySqlConnection(conn))
{
var people = db.Query<People>("SELECT * FROM PEOPLE").ToList();
}

推荐答案

Using a PC with a 通信设计应用

正如其他人正确指出的那样,通常的最佳实践是在任何时候使用using,只要对象实现了IDisposable,并且您知道该对象的生存期将很短--也就是说,不会比当前方法的持续时间长。这样做可以确保及时清理稀缺的操作系统资源。即使对象的处置被其终结器"停止",您也不希望处于这样一种情况,比如说,您在文件或数据库上有一个锁,或者直到终结器运行数十亿纳秒之后才会被释放。

然而,我的建议是,有少数类型实现IDisposable是出于及时处置非托管资源以外的其他原因。在某些非常特定的情况下,您可以安全地跳过using。然而,使用using几乎从来都不是错误的,即使严格来说不是必需的,所以我给你的建议是偏向谨慎和过度使用,而不是过度使用using