Когда я говорю это
using (Entities db = new Entities())
{
return db.TableName.AsQueryable().ToList();
}
Сделайте я обхожу функциональность использования блока, так как я возвращаю что-то и выходы метода прежде, чем выйти из блока использования, таким образом, я думаю, что блок использования не будет служить своей цели и располагать ресурс.
Это корректно?
Вы ошибаетесь; он будет утилизирован.
Оператор using
компилируется в блок try
/ finally
, который утилизирует исходный объект в блоке finally
. Блоки
finally
выполняются всегда, даже если код внутри блока try
вернул значение или выбросил исключение.
при использовании оператора
вызывается Удалите
объекта db перед возвратом значения.
Нет, блок using принудительно запускает объект Dispose.
http://www.devx.com/dotnet/Article/33167
http://msdn.microsoft.com/en-us/library/yh598w02 (VS.80) .aspx
Ваш оператор using действительно будет успешным. Это похоже на следующее (это то, что компилятор C # преобразует оператор using в:
Entities db = new Entities();
try
{
return db.TableName.AsQueryable().ToList();
}
finally
{
((IDisposable)db).Dispose();
}