在ASP.NET web服务(C# 4.0)中打开和重用数据库连接的最佳实践是什么? web服务有大约5个使用相同数据库的web方法?理想情况下,对于MS Access和SQL server,答案是相同的。
起初,我考虑使用全局私有变量(OleDbConnection),因为我在web方法和支持方法中使用了与主数据库的连接,并且在不久的将来将从make迁移到server,并且很容易进行更改。
但是在阅读了一些像使用ASP.NET和web服务时最有效地获得SQL连接这样的文章之后
似乎我可以在任何地方使用“using”子句创建一个新的按需连接,而不会受到性能的影响?
发布于 2012-10-10 05:57:55
ASP.Net池数据库连接,所以您不需要担心这些低级别的细节。看看本MSDN文章提示3。
发布于 2012-10-10 05:59:51
最佳实践是根本不重复使用连接对象。
public void GetEmployees() As List<Employee> {
var employees = new List<Employee>();
using (var connection = new SqlConnection(Configuration.ConnectionString)) {
using (var command = connection.CreateCommand()) {
command.CommandText = "SELECT * FROM dbo.Employee";
connection.Open();
using (var reader = command.ExecuteReader()) {
while (reader.Read()) {
employees.Add(Employee.CreateRecordFromOpenReader(reader));
}
}
}
}
return employees;
}
然后,如果您需要从任何使用它的事务,设置DTC并这样做。
using (var scope = new TransactionScope()) {
var employees = GetEmployees();
employees.Map((e) => e.Status = Status.Active);
scope.Complete();
}
https://stackoverflow.com/questions/12820969
复制相似问题