Session 实体框架是否需要CRUD上的会话HttpContext?
我看了一些关于MySql和SQLServer实体框架的课程。 首先,教师使用数据库中的实体,在数据库中创建上下文数据库,然后开始插入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
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方法中始终使用会话吗
谢谢在会话中存储上下文是个糟糕的主意 阅读以下关于它的答案: 应该通过方法或请求创建上下文 回答你的问题:
- 是的,使用第一种方法是安全的,当然更推荐在会话中存储上下文