v1.1.3
This commit is contained in:
@@ -17,18 +17,26 @@ namespace CC.Yi.DAL
|
||||
}
|
||||
public static DataContext GetCurrentDbContent()
|
||||
{
|
||||
//return new DataModelContainer();
|
||||
//一次请求共用一个上下文实例
|
||||
//每一次http请求都会开启一个新的线程,保证在一个线程中,DbContext是唯一的
|
||||
//CallContext:是线程内部唯一的数据槽(一块内存空间/容器),相当于一个键值对数据容器,通过key获取value了,需要引入System.Runtime.Remoting.Messaging;命名空间
|
||||
DataContext db = CallContext.GetData("DbContext") as DataContext;
|
||||
object myLock = new object();
|
||||
lock (myLock)
|
||||
{
|
||||
//return new DataModelContainer();
|
||||
//一次请求共用一个上下文实例
|
||||
//每一次http请求都会开启一个新的线程,保证在一个线程中,DbContext是唯一的
|
||||
//CallContext:是线程内部唯一的数据槽(一块内存空间/容器),相当于一个键值对数据容器,通过key获取value了,需要引入System.Runtime.Remoting.Messaging;命名空间
|
||||
DataContext db = CallContext.GetData("DbContext") as DataContext;
|
||||
//从 CallContext 中检索具有指定key“DbContext”的对象,并强转为DbContext
|
||||
|
||||
if (db == null)//线程在数据槽里面没有此上下文
|
||||
{
|
||||
db = Webcontext;
|
||||
CallContext.SetData("DbContext", db);//放到数据槽中去,DbContext是key,db是value
|
||||
}
|
||||
|
||||
|
||||
db = Webcontext;
|
||||
CallContext.SetData("DbContext", db);//放到数据槽中去,DbContext是key,db是value
|
||||
}
|
||||
|
||||
return db;
|
||||
}
|
||||
}
|
||||
|
||||
private static class CallContext
|
||||
|
||||
Reference in New Issue
Block a user