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); }
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); }
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); });
protected override DbCommand CreateCommand() { return(AdonetPortable.GetSqliteCommand()); }