2016-05-08 2 views
0

Я думаю, что есть два основных способа (или больше), чтобы определить рамки Entity Контекст:Лучшее место/способ определения контекста Entity Framework

  1. Определить один контекст в целом приложение, а затем использовать его во время все это жизненный цикл, поэтому здесь контекст будет расположен после закрытия приложение, я определил эту переменную в MainWindow, то я использовал его во всех моих приложений окна и Conteols пользователей

    общественности статической SC_Context Context = новый SC_Context() ;

  2. Определите контекст каждый раз, когда мы хотим иметь дело с базой данных и удалим этот контекст после этого. Таким образом, я на частичные классы и писать метод внутри:

    используя (SC_Context контекст = новый SC_Context()) { // Bla Bla Bla }

На самом деле, я использовал оба пути во многих приложениях, веб-сайтах и ​​приложениях Windows, и я видел много примеров и разработчиков, использующих их.

Просто мой вопрос: Что лучше -при один контекст для всего приложения или использовать один контекст для каждой процедуры с db- для выполнения приложения и потребления оперативной памяти и Почему?

+0

Отмечено как дубликат, но кроме этого этот вопрос слишком основан на мнениях для Stack Overflow. Тем не менее, лучшее, что я когда-либо читал об этом, - это [это] (http://mehdi.me/ambient-dbcontext-in-ef6/). –

ответ

0

Согласно MSDN (или этого blog), вы должны использовать второй способ, с помощью заявления. Когда вы используете с использованием, компилятор автоматически создает блок try/finally и вызовы удаляются в блоке finally.

Вот некоторые общие рекомендации при принятии решения о жизни в контексте:

  1. При работе с веб-приложениями, использовать экземпляр контекста в запроса.
  2. При работе с Windows Presentation Foundation (WPF) или Windows Формами используйте экземпляр контекста для каждой формы. Это позволяет использовать функцию отслеживания изменений , предоставляемую контекстом.

В заключение правило: контекст для каждого запроса и контекст для каждой формы жизни.

+0

Thnx, эти ссылки очень полезны :) –

+0

Спасибо. Пожалуйста, поддержите или отметьте как ответ, если вы сочтете это полезным для вас :) – AnhTriet

Смежные вопросы