Нужен ли Entity Framework сеанс HttpContext в CRUD?

Я смотрел какой-то класс о Entity Framework с MySql и Sql Server. Сначала учитель использует Entity из базы данных, где он создает контекстную БД, а затем начинает вставку.

using(sampleEntities ctx = new sampleEntities()){
client clt = new client();
clt.name = txtName.Text;
clt.phone = txtPhone.Text;
ctx.Add(clt);
ctx.SaveChanges();

Но другой учитель делает что-то другое с сеансом usgin DAL, BLL и пользовательского интерфейса и httpContext, он говорит, что Entity нужен этот сеанс, чтобы избежать «конфликта сохранения», поскольку в первом примере используется одно и то же «соединение/сеанс» для многих пользователей, так что это что он делает:

    public static sample01Entities Current
    {
        get
        {
               if (System.Web.HttpContext.Current.Session["SampleDbContext"] == null)
            {
                db = new sample01Entities();
                System.Web.HttpContext.Current.Session["SampleDbContext"] = db;
            }
            return db;

        }
    }

` а затем в Далсити

        public void Add(cidade c)
    {
        SampleDbContext.Current.cidade.Add(c);
        SampleDbContext.Current.SaveChanges();
        SampleDbContext.Current.ChangeTracker.Entries<cidade>();
    }

Вопрос в том, безопасно ли использовать первый пример, не ставя под угрозу веб-сайт? Или я должен использовать сеанс все время для всех методов CRUD?

Спасибо


person Jeú Casulo    schedule 27.01.2016    source источник


Ответы (1)


Сохранение контекста в сеансе — ужасная идея.

Прочитайте следующий ответ об этом: Контекст объекта Entity Framework в ASP. NET Session?

Контекст должен создаваться методом или запросом.

Чтобы ответить на ваш вопрос:

  • Да, безопасно использовать первый подход и, безусловно, более рекомендуется, чем сохранение контекста в сеансе.
person Jonathan Magnan    schedule 27.01.2016
comment
Спасибо большое!!! Это мне очень помогло, так что теперь я знаю, что мне нужно делать, еще раз спасибо! - person Jeú Casulo; 28.01.2016