WebMatrix Database.Open ... Close()和Dispose()

时间:2012-10-29 19:50:30

标签: dispose webmatrix

无论何时我读到关于Close()和Dispose()的内容,我最终都会看到很多只使用Using Block的引用,但我还没有找到如何在WebMatrix C#Razor语法中使用Using Block。

所以我不想要一个只使用一个使用块的答案,除非你能告诉我具体如何。

具体使用Database.Open(),在完成连接/查询后

我的问题是:

  • 我应该同时使用Close()和Dispose()吗?
  • 我是否调用Close()然后调用Dispose()或Dispose()然后调用Close()是否重要?

希望简单问题的简单答案。感谢

1 个答案:

答案 0 :(得分:4)

ASP.NET Web Pages框架数据库助手的示例不包括对Close或Dispose的调用,因为框架本身旨在在请求结束时为您调用Dispose。如果使用ADO.NET而不是数据库帮助程序,则应使用using语句。话虽如此,没有什么可以阻止你使用块包装数据库助手调用:

IEnumerable<dynamic> floaters = null;
using(var db = Database.Open("MyDb")){
    var sql = "SELECT * From LifeRafts";
    floaters = db.Query(sql);
}

如果您想自己管理,可以直接调用Close或Dispose。无论如何,它们都会导致连接返回到ADO.NET连接池。

相关问题