2016-01-27 20 views
0

我用MySql和Sql Server观看了一些关于实体框架的类。 首先老师从数据库中,在那里,他创建上下文DB使用实体和比他开始插入实体框架是否需要CRUD上的Session HttpContext?

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; 

     } 
    } 

` 然后在Dalcity

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

问题是:在不危害网站的情况下使用第一个示例是否安全?或者我应该使用所有的CRUD方法吗?

谢谢

回答

0

在会话中存储上下文是一个可怕的想法。

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

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

要回答你的问题:

  • 是可以安全使用的第一种方法和肯定的推荐,然后存储在一个会话的上下文等等。
+0

真的很感谢你!它帮助了我很多,所以现在我知道我需要做什么,再次感谢! –