你的位置:首页 > ASP.net教程

[ASP.net教程]EF线程唯一与DBSession接口对接


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接口对接了