我在我的 ASP.NET WebForms 解决方案中使用了 dapper。
我所有处理数据的类都从这个基类中检索一个打开的连接
public abstract class SalesDb : IDisposable
{
protected static IDbConnection OpenConnection()
{
IDbConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SalesDb"].ConnectionString);
connection.Open();
return connection;
}
public void Dispose()
{
OpenConnection().Dispose();
}
}
使用此基类的服务类示例
public class LeadService : SalesDb
{
public IEnumerable<LeadDto> Select()
{
using (IDbConnection connection = OpenConnection())
{
return connection.Query<LeadDto>("Lead_Select",
null, null, true, null, CommandType.StoredProcedure);
}
}
}
OpenConnection(
基类中的 ) 方法是静态的并且每次调用都返回一个新实例,这有什么缺点吗?