【发布时间】:2014-09-30 20:06:04
【问题描述】:
我想从SqlDataReader 中检索所有System.Data.IDataRecords。使用 LINQ,这很简单,但我希望能够处理所有 SQL 对象并保持数据完整。以下是我所拥有的:
private static List<System.Data.IDataRecord> getRecords()
{
List<System.Data.IDataRecord> records;
//Make a SqlConnection and SqlCommand.
using (SqlDataReader reader = command.ExecuteReader())
{
records = reader.Cast<System.Data.IDataRecord>().ToList();
}
//Dispose of SqlCommand and SqlConnection.
return records;
}
但这是我的问题:当getRecords() 完成时,我有我的数据,并且我已要求处理所有 SQL 对象。但是我是否以某种方式挂在数据上,这会阻止适当的资源处理?或者一旦垃圾收集器完成工作,我的数据最终会变得无效吗?我认为答案是否定的,但我试图找到一些确定的东西。我相信Dispose() 只会删除非托管资源,并且由于我将数据放在我的列表中,我认为它是安全的。谢谢。
【问题讨论】:
标签: c# linq dispose sqldatareader