Exemple #1
0
        /// <summary>
        /// 创建事务中的Db,执行后Db会被释放(用了using)
        /// </summary>
        public TRes InTran <TRes>(long id, DbTransactionContext tran, Func <T, TRes> operateFunc)
        {
            if (_dbConfig.DbConstructor.NewDbInTran == null)
            {
                throw new Exception($"{typeof(T).Name}没有定义带事务参数的构造函数,请在RegDb方法中添加设置。");
            }

            using var db = _dbConfig.DbConstructor.NewDbInTran(Scope(DataIdBuilder.ParseDate(id)), tran);
            return(operateFunc(db));
        }
Exemple #2
0
 /// <summary>
 /// Id列表解析时间范围,以获取Db
 /// </summary>
 public IReadOnlyList <T> By(IReadOnlyCollection <long> ids)
 {
     var(start, end) = DataIdBuilder.ParseDateRange(ids);
     return(Scope(start, end).ConvertAll(By));
 }
Exemple #3
0
 /// <summary>
 /// 按Id解析时间以获取Db
 /// </summary>
 public T By(long id)
 {
     return(GetDb(Scope(DataIdBuilder.ParseDate(id))));
 }