【问题标题】:Does Entity Framework need a Session HttpContext on CRUD?实体框架是否需要 CRUD 上的会话 HttpContext?
【发布时间】:2016-01-27 00:37:24
【问题描述】:

我看过一些关于 Entity Framework with MySql 和 Sql Server 的课程。 首先,老师使用数据库中的实体,在其中创建上下文数据库,然后开始插入

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 session 和 httpContext 做了一些不同的事情,他说 Entity 需要这个 Session 来避免“持久性冲突”,因为第一个示例是为很多用户使用相同的“连接/会话”,所以他就是这样做的:

    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 方法吗?

谢谢

【问题讨论】:

    标签: session entity entity-framework-5 crud httpcontext


    【解决方案1】:

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

    阅读以下关于它的答案: Entity Framework Object Context in ASP.NET Session object?

    上下文应该由方法或请求创建。

    回答你的问题:

    • 是的,使用第一种方法是安全的,而且肯定更推荐,然后将上下文存储在会话中。

    【讨论】:

    • 真的谢谢你!!!它对我帮助很大,所以现在我知道我需要做什么了,再次感谢!
    猜你喜欢
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 2013-10-02
    • 1970-01-01
    相关资源
    最近更新 更多