Пример #1
0
        public static IEnumerable <dynamic> GetByIdsDynamic <T>(this IDbConnection conn, object ids, string returnFields = null, IDbTransaction transaction = null, int?commandTimeout = null)
        {
            if (DapperExtCommon.ObjectIsEmpty(ids))
            {
                return(new List <dynamic>());
            }
            DapperExtSqls sqls = GetDapperExtSqls(typeof(T));

            if (sqls.HasKey)
            {
                DynamicParameters dpar = new DynamicParameters();
                dpar.Add("@ids", ids);
                if (returnFields == null)
                {
                    return(conn.Query(sqls.GetByIdsSql, dpar, transaction, true, commandTimeout));
                }
                else
                {
                    string sql = string.Format("SELECT {0} FROM [{1}] WITH(NOLOCK) WHERE [{2}] IN @ids", returnFields, sqls.TableName, sqls.KeyName);
                    return(conn.Query(sql, dpar, transaction, true, commandTimeout));
                }
            }
            else
            {
                throw new ArgumentException("表" + sqls.TableName + "没有主键,无法GetByIdsDynamic。");
            }
        }
Пример #2
0
        private static IEnumerable <T> GetByIdsBase <T>(this IDbConnection conn, Type t, object ids, string returnFields = null, IDbTransaction transaction = null, int?commandTimeout = null)
        {
            if (DapperExtCommon.ObjectIsEmpty(ids))
            {
                return(new List <T>());
            }
            DapperExtSqls sqls = GetDapperExtSqls(t);

            if (sqls.HasKey)
            {
                DynamicParameters dpar = new DynamicParameters();
                dpar.Add("@ids", ids);
                if (returnFields == null)
                {
                    return(conn.Query <T>(sqls.GetByIdsSql, dpar, transaction, true, commandTimeout));
                }
                else
                {
                    string sql = string.Format("SELECT {0} FROM `{1}` WHERE `{2}` IN @ids", returnFields, sqls.TableName, sqls.KeyName);
                    return(conn.Query <T>(sql, dpar, transaction, true, commandTimeout));
                }
            }
            else
            {
                throw new ArgumentException("表" + sqls.TableName + "没有主键,无法GetByIds。");
            }
        }
Пример #3
0
        public static IEnumerable <dynamic> GetByInDynamic <T>(this IDbConnection conn, string field, object ids, string returnFields = null, IDbTransaction transaction = null, int?commandTimeout = null)
        {
            if (DapperExtCommon.ObjectIsEmpty(ids))
            {
                return(new List <dynamic>());
            }
            DapperExtSqls     sqls = GetDapperExtSqls(typeof(T));
            DynamicParameters dpar = new DynamicParameters();

            dpar.Add("@ids", ids);
            if (returnFields == null)
            {
                returnFields = sqls.AllFields;
            }
            string sql = string.Format("SELECT {0} FROM [{1}] WITH(NOLOCK) WHERE [{2}] IN @ids", returnFields, sqls.TableName, field);

            return(conn.Query(sql, dpar, transaction, true, commandTimeout));
        }
Пример #4
0
        private static IEnumerable <T> GetByInBase <T>(this IDbConnection conn, Type t, string field, object ids, string returnFields = null, IDbTransaction transaction = null, int?commandTimeout = null)
        {
            if (DapperExtCommon.ObjectIsEmpty(ids))
            {
                return(new List <T>());
            }
            DapperExtSqls     sqls = GetDapperExtSqls(t);
            DynamicParameters dpar = new DynamicParameters();

            dpar.Add("@ids", ids);
            if (returnFields == null)
            {
                returnFields = sqls.AllFields;
            }
            string sql = string.Format("SELECT {0} FROM `{1}` WHERE `{2}` IN @ids", returnFields, sqls.TableName, field);

            return(conn.Query <T>(sql, dpar, transaction, true, commandTimeout));
        }
Пример #5
0
        public static int DeleteByIds <T>(this IDbConnection conn, object ids, IDbTransaction transaction = null, int?commandTimeout = null)
        {
            if (DapperExtCommon.ObjectIsEmpty(ids))
            {
                return(0);
            }
            DapperExtSqls sqls = GetDapperExtSqls(typeof(T));

            if (sqls.HasKey)
            {
                DynamicParameters dpar = new DynamicParameters();
                dpar.Add("@ids", ids);
                return(conn.Execute(sqls.DeleteByIdsSql, dpar, transaction, commandTimeout));
            }
            else
            {
                throw new ArgumentException("表" + sqls.TableName + "没有主键,无法DeleteById。");
            }
        }