Example #1
0
 internal Queue(InternalContext context, SetDataMap map)
 {
     ID       = Guid.NewGuid();
     Context  = context;
     Map      = map;
     CreateAt = DateTime.Now;
 }
Example #2
0
 /// <summary>
 ///     释放资源
 /// </summary>
 /// <param name="disposing">是否释放托管资源</param>
 private void Dispose(bool disposing)
 {
     //释放托管资源
     if (disposing)
     {
         Context      = null;
         Map          = null;
         _expBuilder  = null;
         _sqlBuilder  = null;
         _procBuilder = null;
         LazyAct      = null;
     }
 }
Example #3
0
 /// <summary>
 ///     延迟执行数据库交互,并提交到队列
 /// </summary>
 /// <param name="act">要延迟操作的委托</param>
 /// <param name="map">字段映射</param>
 /// <param name="joinSoftDeleteCondition">是否加入逻辑删除数据过滤</param>
 internal int CommitLazy(SetDataMap map, Func <Queue, int> act, bool joinSoftDeleteCondition)
 {
     if (!ContextProvider.IsMergeCommand)
     {
         return(Commit(map, act, joinSoftDeleteCondition));
     }
     try
     {
         var queue = CreateQueue(map);
         if (joinSoftDeleteCondition)
         {
             queue.ExpBuilder.DeleteSortCondition();
         }
         queue.LazyAct = act;
         _groupQueueList.Add(_queue);
         return(0);
     }
     finally { Clear(); }
 }
Example #4
0
 /// <summary>
 ///     立即执行
 /// </summary>
 /// <param name="act">要延迟操作的委托</param>
 /// <param name="map">字段映射</param>
 /// <param name="joinSoftDeleteCondition">是否加入逻辑删除数据过滤</param>
 internal async Task <TReturn> CommitAsync <TReturn>(SetDataMap map, Func <Queue, Task <TReturn> > act, bool joinSoftDeleteCondition)
 {
     try
     {
         var queue = CreateQueue(map);
         if (joinSoftDeleteCondition)
         {
             queue.ExpBuilder.DeleteSortCondition();
         }
         return(await act(queue));
     }
     finally
     {
         Clear();
         if (ContextProvider.IsUnitOfWork)
         {
             ContextProvider.Executeor.DataBase.Close(true);
         }
     }
 }
Example #5
0
 /// <summary>
 ///     立即执行
 /// </summary>
 /// <param name="act">要延迟操作的委托</param>
 /// <param name="map">字段映射</param>
 /// <param name="joinSoftDeleteCondition">是否加入逻辑删除数据过滤</param>
 internal TReturn Commit <TReturn>(SetDataMap map, Func <Queue, TReturn> act, bool joinSoftDeleteCondition)
 {
     try
     {
         // 立即删除时,先提交队列中的数据
         ContextProvider.QueueManger.CommitAll();
         var queue = CreateQueue(map);
         if (joinSoftDeleteCondition)
         {
             queue.ExpBuilder.DeleteSortCondition();
         }
         return(act(queue));
     }
     finally
     {
         Clear();
         if (!ContextProvider.IsMergeCommand)
         {
             ContextProvider.Executeor.DataBase.Close(true);
         }
     }
 }
Example #6
0
 /// <summary>
 ///     提供字段插入表达式树的解析
 /// </summary>
 /// <param name="dbProvider">数据库提供者(不同数据库的特性)</param>
 /// <param name="map">字段映射</param>
 /// <param name="paramList">SQL参数列表</param>
 public InsertVisitor(AbsDbProvider dbProvider, SetDataMap map, List <DbParameter> paramList) : base(dbProvider, map, paramList)
 {
 }
Example #7
0
 /// <summary>
 ///     获取当前队列(不存在,则创建)
 /// </summary>
 /// <param name="map">字段映射</param>
 internal Queue CreateQueue(SetDataMap map)
 {
     return(_queue ?? (_queue = new Queue(ContextProvider, map)));
 }
Example #8
0
 /// <summary>
 ///     Select筛选字段时表达式树的解析
 /// </summary>
 /// <param name="map">字段映射</param>
 /// <param name="paramList">SQL参数列表</param>
 public virtual WhereVisitor CreateWhereVisitor(SetDataMap map, List <DbParameter> paramList) => new WhereVisitor(this, map, paramList);
Example #9
0
 /// <summary>
 ///     存储过程生成器
 /// </summary>
 /// <param name="dbProvider">数据库驱动</param>
 /// <param name="setMap">实体类映射</param>
 /// <param name="name">存储过程名称</param>
 internal ProcBuilder(AbsDbProvider dbProvider, SetDataMap setMap, string name)
 {
     _dbProvider = dbProvider;
     _setMap     = setMap;
     Name        = name;
 }
Example #10
0
 /// <summary>
 ///     提供字段排序时表达式树的解析
 /// </summary>
 /// <param name="map">字段映射</param>
 /// <param name="paramList">SQL参数列表</param>
 public virtual OrderByVisitor CreateOrderByVisitor(SetDataMap map, List <DbParameter> paramList) => new OrderByVisitor(this, map, paramList);
Example #11
0
 /// <summary>
 ///     提供字段插入表达式树的解析
 /// </summary>
 /// <param name="map">字段映射</param>
 /// <param name="paramList">SQL参数列表</param>
 public virtual InsertVisitor CreateInsertVisitor(SetDataMap map, List <DbParameter> paramList) => new InsertVisitor(this, map, paramList);
Example #12
0
 /// <summary>
 ///     提供字段赋值时表达式树的解析
 /// </summary>
 /// <param name="map">字段映射</param>
 /// <param name="paramList">SQL参数列表</param>
 public virtual AssignVisitor CreateAssignVisitor(SetDataMap map, List <DbParameter> paramList) => new AssignVisitor(this, map, paramList);
 /// <summary>
 ///     Select筛选字段时表达式树的解析
 /// </summary>
 /// <param name="dbProvider">数据库提供者(不同数据库的特性)</param>
 /// <param name="map">字段映射</param>
 /// <param name="paramList">SQL参数列表</param>
 public OleDbWhereVisitor(AbsDbProvider dbProvider, SetDataMap map, List <DbParameter> paramList) : base(dbProvider, map, paramList)
 {
 }
 /// <summary>
 ///     默认构造器
 /// </summary>
 /// <param name="dbProvider">数据库提供者(不同数据库的特性)</param>
 /// <param name="map">字段映射</param>
 /// <param name="paramList">SQL参数列表</param>
 protected AbsSqlVisitor(AbsDbProvider dbProvider, SetDataMap map, List <DbParameter> paramList)
 {
     DbProvider = dbProvider;
     SetMap     = map;
     ParamList  = paramList;
 }
Example #15
0
 /// <summary>
 ///     Select筛选字段时表达式树的解析
 /// </summary>
 /// <param name="map">字段映射</param>
 /// <param name="paramList">SQL参数列表</param>
 public virtual SelectVisitor CreateSelectVisitor(SetDataMap map, List <DbParameter> paramList) => new SelectVisitor(this, map, paramList);
 internal ExpressionBuilder(SetDataMap map)
 {
     SetMap = map;
 }
 public override WhereVisitor CreateWhereVisitor(SetDataMap map, List <DbParameter> paramList) => new OleDbWhereVisitor(this, map, paramList);