4

每当我阅读有关 Close() 和 Dispose() 的信息时,我最终都会看到很多仅使用 Using Block 的引用,但我还没有找到如何在 WebMatrix C# Razor Syntax 中使用 Using Block。

因此,我不想要一个只使用 Using Block 的答案,除非您可以通过示例确切地告诉我如何使用。

完成连接/查询后,特定于 Database.Open() 的使用

我的问题是:

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

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

4

1 回答 1

4

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

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

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

于 2012-10-29T20:30:20.233 回答