public void EndDefaultContext() { EfReaderAndWriterContext context = null; HttpContext currentContext = HttpContext.Current; if (currentContext == null) { context = CallContext.GetData(_defaultContextName) as EfReaderAndWriterContext; } else { context = currentContext.Items[_defaultContextName] as EfReaderAndWriterContext; } if (context != null) { if (context.Reader != null) { context.Reader.Dispose(); } context.Writer.Dispose(); } if (currentContext == null) { CallContext.SetData(_defaultContextName, null); } else { currentContext.Items.Remove(_defaultContextName); } }
public void StartReadWriteContext() { if (this.HasDataAccessTypeContext) { throw new DataAccessException("不能重复开启数据访问上下文"); } var context = new EfReaderAndWriterContext(); if (!string.IsNullOrEmpty(this.ReadConnectionString)) { context.Reader = new IkObjectContext(this.ReadConnectionString); } context.Writer = new IkObjectContext(this.WriteConnectionString); context.ContextType = DataAccessContextType.ReadWrite; HttpContext currentContext = HttpContext.Current; if (currentContext == null) { CallContext.SetData(_sessionName, context); } else { currentContext.Items[_sessionName] = context; } }