我的 Web 应用程序具有以下类:
public class DatabaseProvider {
private readonly IDbConnection _cn;
public DatabaseProvider(IDbConnection cn) {
_cn = cn;
}
public void ExecuteNonQuery(string query) {
// Execute the query
var cmd = _cn.CreateCommand();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
}
}
使用以下代码(使用 Microsoft Unity)声明 IDbConnection 依赖项的位置:
container.RegisterType<IDbConnection>(new InjectionFactory(c => {
var cn = new SqlConnection("...");
cn.Open();
return cn;
}));
这允许我像这样交换到 SQLite 的连接:
container.RegisterType<IDbConnection>(new InjectionFactory(c => {
var cn = new SQLiteConnection("Data Source=:memory:;Version=3;");
cn.Open();
return cn;
}));
我在测试时使用 SQLite,连接必须保持打开状态,否则数据会丢失。因此,我不能在需要时打开和关闭连接。
我总是在需要时打开与数据库的连接,并且想知道这是否适用于大型应用程序?
我将不胜感激有关如何改进这一点的任何建议。谢谢