Entity Framework 是否需要在 CRUD 上使用 Session HttpContext?
Does Entity Framework need a Session HttpContext on CRUD?
我用 MySql 和 Sql 服务器看了一些 class 关于 Entity Framework 的内容。
首先,老师使用数据库中的实体,他在其中创建上下文数据库,然后开始插入
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 做了一些不同的事情,他说实体需要这个会话来避免 "persistence conflict" 因为第一个例子使用相同的 "connection/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 方法使用会话吗?
谢谢
在会话中存储上下文是个糟糕的主意。
阅读以下关于它的回答:
Entity Framework Object Context in ASP.NET Session object?
上下文应通过方法或请求创建。
回答你的问题:
- 是的,使用第一种方法是安全的,当然更推荐使用第一种方法,然后将上下文存储在会话中。
我用 MySql 和 Sql 服务器看了一些 class 关于 Entity Framework 的内容。 首先,老师使用数据库中的实体,他在其中创建上下文数据库,然后开始插入
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 做了一些不同的事情,他说实体需要这个会话来避免 "persistence conflict" 因为第一个例子使用相同的 "connection/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 方法使用会话吗?
谢谢
在会话中存储上下文是个糟糕的主意。
阅读以下关于它的回答: Entity Framework Object Context in ASP.NET Session object?
上下文应通过方法或请求创建。
回答你的问题:
- 是的,使用第一种方法是安全的,当然更推荐使用第一种方法,然后将上下文存储在会话中。