This commit is contained in:
454313500@qq.com
2021-04-13 12:42:37 +08:00
parent 8673e8fd85
commit d9e826af68
3 changed files with 31 additions and 23 deletions

View File

@@ -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是keydb是value
}
db = Webcontext;
CallContext.SetData("DbContext", db);//放到数据槽中去,DbContext是keydb是value
}
return db;
}
}
private static class CallContext