Asp.net 每个请求与ADO.net的连接,是还是否?
打开数据库的Asp.net 每个请求与ADO.net的连接,是还是否?,asp.net,entity-framework,ado.net,database-connection,connection-pooling,Asp.net,Entity Framework,Ado.net,Database Connection,Connection Pooling,打开数据库的IDbConnection并在当前请求中的所有调用方法期间使用它,然后允许DI容器在Application\u EndRequest中处理它,就像在类似O/RMs的实体框架中使用的“每个请求的上下文”模式一样,可以吗 或者我应该在每个方法中打开和关闭连接吗 更好的方法是在请求中创建一个连接,并在触发页面卸载事件时处理它。这样,您将处理掉不需要的资源 你必须这样做:- 重写页面\u PreInit:初始化连接,打开它并启动新事务 覆盖页面加载:读取数据库并创建集合 覆盖页面卸载:提交
IDbConnection
并在当前请求中的所有调用方法期间使用它,然后允许DI容器在Application\u EndRequest
中处理它,就像在类似O/RMs的实体框架中使用的“每个请求的上下文”模式一样,可以吗
或者我应该在每个方法中打开和关闭连接吗 更好的方法是在请求中创建一个连接,并在触发页面卸载事件时处理它。这样,您将处理掉不需要的资源 你必须这样做:-
- 重写页面\u PreInit:初始化连接,打开它并启动新事务
- 覆盖页面加载:读取数据库并创建集合
- 覆盖页面卸载:提交/回滚事务,关闭连接
- 覆盖Dispose:实现IDisposable和Dispose基本对象
// The first parameter of SqlWebDbConnector is connection string
// or connection string name(in Web.config)
var context = new WebDbConnectorContext<SqlConnection>(
new SqlWebDbConnector("Test", true));
var sqlContext = context.GetCurrentContext();
// TODO: write your own code
//SqlWebDbConnector的第一个参数是连接字符串
//或连接字符串名称(在Web.config中)
var context=新的WebDbConnectorContext(
新的SqlWebDbConnector(“Test”,true));
var sqlContext=context.GetCurrentContext();
//TODO:编写自己的代码
然后,您可以通过继承WebDbConnectorHttpApplication实现关闭和释放所有资源
我希望这能帮助你
更多信息请访问。查看此链接:@FelipeOriani:感谢链接,因此该事务不适用于单连接