哪种模式更适合SqlConnection
目的?性能上哪个更好?
你们提供其他模式吗?
class DataAccess1 : IDisposable
{
private SqlConnection connection;
public DataAccess1(string connectionString)
{
connection = new SqlConnection(connectionString);
}
public void Execute(string query)
{
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = query;
command.CommandType = CommandType.Text;
// ...
command.Connection.Open();
command.ExecuteNonQuery();
command.Connection.Close();
}
}
public void Dispose()
{
connection.Dispose();
}
}
VS
class DataAccess2 : IDisposable
{
private string connectionString;
public DataAccess2(string connectionString)
{
this.connectionString = connectionString;
}
public void Execute(string query)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = connection.CreateCommand();
command.CommandText = query;
command.CommandType = CommandType.Text;
// ...
command.Connection.Open();
command.ExecuteNonQuery();
command.Connection.Close();
}
}
public void Dispose()
{
}
}
没有真正的方法来回答这个问题。简短而规范的答案是,连接应该在工作单元的生命周期内保持活动状态。因为我们无法知道如何DataAccess
是否被使用(它是否在您的应用程序的生命周期中存在,或者您是否在执行某些操作时实例化它并处置它?),不可能给出具体的答案。
话虽这么说,我会推荐第一种模式,但实例化并处理你的DataAccess
根据需要对象;不要将其保留超过必要的时间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)