时间:2021-07-01 10:21:17 帮助过:3人阅读
EF 是(entity framework)对于数据库上下文dbcontext 启动线程唯一,是为了处理数据时没有脏数据,可以使用工厂来共同创建DbContext
DBSession实例代码:
public class DBSession:IDBSession
{
private DbContext Db
{
get
{
//创建线程唯一的ef,DBContextFactory是EF工厂
return DBContextFactory.CreateUnityConText();
}
}
DBContextFactory的代码:作用判断数据上下文是否存在是数据上下文唯一
DbContext dbConText = (DbContext)CallContext.GetData("dbConText");
if (dbConText==null)
{
dbConText = new OAEntities();//OAEntities()是数据上下文model1.Context.cs中的
//.SetData("dbConText", dbConText);存储数据
CallContext.SetData("dbConText", dbConText);
}
return dbConText;
如何实现多表操作一次性保存数据,为了避免占用数据链接池多次链接数据库
在DBSession绘画中统一提取
Db.SaveChanges() 承装与接口中即可解决
这样ef线程唯一也与dbsession接口对接了
EF线程唯一与DBSession接口对接
标签: