예제 #1
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 = new TaosParameter();

            ret.ParameterName = QuoteParamterName(parameterName);
            ret.DbType        = dbtype;
            ret.Value         = value;
            _params?.Add(ret);
            return(ret);
        }
예제 #2
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           = new TaosParameter();
            ret.ParameterName = $"@{name}";
            ret.DbType        = dbtype;
            ret.Value         = value;
            return(ret);
        });