Пример #1
0
 public void Return(Object <DbConnection> obj, Exception exception, bool isRecreate = false)
 {
     if (exception != null && AdonetPortable.IsSqliteException(exception))
     {
         try { if (obj.Value.Ping() == false)
               {
                   obj.Value.OpenAndAttach(policy.Attaches);
               }
         } catch { base.SetUnavailable(exception); }
     }
     base.Return(obj, isRecreate);
 }
Пример #2
0
        public override DbParameter AppendParamter(List <DbParameter> _params, string parameterName, ColumnInfo col, Type type, object value)
        {
            if (string.IsNullOrEmpty(parameterName))
            {
                parameterName = $"p_{_params?.Count}";
            }
            var dbtype = (DbType)_orm.CodeFirst.GetDbInfo(type)?.type;

            switch (dbtype)
            {
            case DbType.Guid:
                if (value == null)
                {
                    value = null;
                }
                else
                {
                    value = ((Guid)value).ToString();
                }
                dbtype = DbType.String;
                break;

            case DbType.Time:
                if (value == null)
                {
                    value = null;
                }
                else
                {
                    value = ((TimeSpan)value).Ticks / 10000;
                }
                dbtype = DbType.Int64;
                break;
            }
            var ret = AdonetPortable.GetSqliteParameter();

            ret.ParameterName = QuoteParamterName(parameterName);
            ret.DbType        = dbtype;
            ret.Value         = value;
            _params?.Add(ret);
            return(ret);
        }
Пример #3
0
        public override DbParameter[] GetDbParamtersByObject(string sql, object obj) =>
        Utils.GetDbParamtersByObject <DbParameter>(sql, obj, "@", (name, type, value) =>
        {
            var dbtype = (DbType)_orm.CodeFirst.GetDbInfo(type)?.type;
            switch (dbtype)
            {
            case DbType.Guid:
                if (value == null)
                {
                    value = null;
                }
                else
                {
                    value = ((Guid)value).ToString();
                }
                dbtype = DbType.String;
                break;

            case DbType.Time:
                if (value == null)
                {
                    value = null;
                }
                else
                {
                    value = ((TimeSpan)value).Ticks / 10000;
                }
                dbtype = DbType.Int64;
                break;
            }
            var ret           = AdonetPortable.GetSqliteParameter();
            ret.ParameterName = $"@{name}";
            ret.DbType        = dbtype;
            ret.Value         = value;
            return(ret);
        });
Пример #4
0
 protected override DbCommand CreateCommand()
 {
     return(AdonetPortable.GetSqliteCommand());
 }