我可以在MS.Net framework 4.0中使用SqlClient的Mono实现吗?

本文关键字:SqlClient Mono 实现 MS Net framework 我可以 | 更新日期: 2023-09-27 18:14:18

我们正在测试一些选项来解决。net 4.0 SqlClient的性能问题(大量的GC和终结器等),并且正在考虑使用不同的Sql客户端实现- Mono出现在脑海中。

1)是否有可能在MS.Net应用程序中使用SqlClient的Mono实现?如果有,怎么做?
2) Mono实现"稳定"吗?最推荐哪个版本?
3) SqlCommand, QueryResults等的单一实现是否包含终结器?

谢谢!

我可以在MS.Net framework 4.0中使用SqlClient的Mono实现吗?

如果您看到这些影响GC,那么表明您没有正确使用它们。其中,SqlDataReader一开始就没有终结器,所以我假设我们讨论的是SqlCommandSqlConnection。这两个都继承自Component,并且在这两种情况下,Dispose()调用从GC中注销—它是:

public void Dispose()
{
    this.Dispose(true);
    GC.SuppressFinalize(this);
}

因此:如果您将这些设置为GC中的终结器,请查看您是否正确地处理了对象。最简单的方法是通过using语句。例如:

using(var conn = OpenSomeConnection())
using(var cmd = conn.CreateCommand()) {
    // TODO configure command
    using(var reader = cmd.ExecuteReader()) {
        // TODO consume data
    }
}