Session 实体框架是否需要CRUD上的会话HttpContext?

Session 实体框架是否需要CRUD上的会话HttpContext?,session,entity,entity-framework-5,crud,httpcontext,Session,Entity,Entity Framework 5,Crud,Httpcontext,我看了一些关于MySql和SQLServer实体框架的课程。 首先,教师使用数据库中的实体,在数据库中创建上下文数据库,然后开始插入 using(sampleEntities ctx = new sampleEntities()){ client clt = new client(); clt.name = txtName.Text; clt.phone = txtPhone.Text; ctx.Add(clt); ctx.SaveChanges(); 但另一位老师对DAL、BLL和UI us

我看了一些关于MySql和SQLServer实体框架的课程。 首先,教师使用数据库中的实体,在数据库中创建上下文数据库,然后开始插入

using(sampleEntities ctx = new sampleEntities()){
client clt = new client();
clt.name = txtName.Text;
clt.phone = txtPhone.Text;
ctx.Add(clt);
ctx.SaveChanges();
但另一位老师对DAL、BLL和UI usgin会话和httpContext做了一些不同的事情,他说实体需要这个会话来避免“持久性冲突”,因为第一个示例对许多用户使用相同的“连接/会话”,所以他就是这么做的:

    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>();
    }
公共作废添加(cidade c)
{
SampleDbContext.Current.cidade.Add(c);
SampleDbContext.Current.SaveChanges();
SampleDbContext.Current.ChangeTracker.Entries();
}
问题是:在不危害网站的情况下使用第一个示例是否安全?或者我应该在所有CRUD方法中始终使用会话吗


谢谢

在会话中存储上下文是个糟糕的主意

阅读以下关于它的答案:

应该通过方法或请求创建上下文

回答你的问题:

  • 是的,使用第一种方法是安全的,当然更推荐在会话中存储上下文

非常感谢您!!!这对我帮助很大,所以现在我知道我需要做什么了,再次感谢!