dev.net.ua

Українська Спільнота Розробникiв
 
Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID
в Пошук

DataContext та IDisposable

Останнє повідомлення 25-11-2007, 12:37 від Brand. 2 відповіді.
Сортувати: Попереднє Наступне
  •  24-11-2007, 11:59 4747

    DataContext та IDisposable

    DataContext реалізує інтерфейс IDisposable. Але чи обов'язково визивати метод Dispose? Як я бачу найчастіше у прикладах з LinQ, конструкцію Using не використовують та Dispose не визивають.

    І ще одне питання - де краще тримати екземпляр DataContext у aspx.vb-файлі? DataContext може знадобитись у деяких процедурах класу (наприклад к Page_Load та у обработчику події Button_Click) - скажімо, чи буде корректним перенесеня DataContext у поле класу та його ініціалізация у конструкторі? В якому місці (якщо звичайно це потрібно) в такому разі викликати DataqContext.Dispose?


    Artyom Krivokrisenko
    Web Reflection, Development Department
  •  24-11-2007, 12:44 4748 у відповідь на 4747

    Re: DataContext та IDisposable

    Dispose необов'язковий. Але потрібно. Тобто нічого страшного не буде якщо ви його не викличите. Але в Dispose закривається підключення, а в наступних версях може робитися щось більш суттеве. Тому це потрібно. Аби перестрахуватися.

    Тепер про сторінку. Я б не рекомендував робити це полем. По-перше, створення контексту достатньо швидка операція. По-друге краще руками контролювати його створення, та вбивання. А по трете, далеко не при всіх операціях цей котекст потрібен. Наприклад колбеки. Хоча зрозуміло що якщо зробити "lazy" ініціалізацю то це не проблема. Принаймні конструктор відпадає одразу. Якщо всеж таки обрали використання контексту як поле, то вбивати його можна у двох місцяї. Овверайд Dispose сторінки (тут потрібно не забути викликати базову реалізацію). Або OnUnload.


    MCPD(Web,Windows,Enterprise), MCTS (WPF, WCF)
  •  25-11-2007, 12:37 4753 у відповідь на 4748

    Re: DataContext та IDisposable

    Дякую, саме так і зробив.


    Artyom Krivokrisenko
    Web Reflection, Development Department
Переглядати як новосний Блог RSS в XML