2016-01-27 23 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

真的很感謝你!它幫助了我很多,所以現在我知道我需要做什麼,再次感謝! –