Я смотрел какой-то класс о 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?
Спасибо