Example #1
0
        public DbParamInfo GetDeleteDbParamInfo(Expression <Func <T, bool> > expression = null)
        {
            T curmodel = ContextEntity;

            if (curmodel == null)
            {
                curmodel = this as T;
            }
            List <DbFieldInfo> keList = null;
            var hasIdentity           = false;
            var paList = new List <DbParameter>();

            if (expression != null)
            {
                ClearArguments();
                var exp = new SqlLmdResolver(DbWriteConfig);

                exp.ParaIndex = _paraIndex;
                exp.ResolveExpression(expression);
                _paraIndex = exp.ParaIndex;

                _WhereBuilder.Append(exp.SqlWhere);
                _Parameters.AddRange(exp.Parameters);
            }
            if (_WhereBuilder == null || _WhereBuilder.Length == 0)
            {
                if (curmodel == null)
                {
                    throw new Exception("当前实体参数ContextEntity为空!");
                }
                var fieldList = ConvertFields(curmodel);
                keList      = fieldList.FindAll(m => m.IsPrimaryKey);
                hasIdentity = fieldList.Exists(m => m.IsIdentity);
            }

            var sbAndWhere = new StringBuilder();

            sbAndWhere.Append(" where 1=1 ");

            if (keList != null)
            {
                foreach (var param in keList)
                {
                    sbAndWhere.Append(string.Concat(" and [", param.Name, "]=@", param.Name));
                    paList.Add(DbProvider.MakeParam(DbWriteConfig, "@" + param.Name, param.Value));
                }
            }
            if (_WhereBuilder != null)
            {
                sbAndWhere.Append(_WhereBuilder.ToString());
            }
            if (_Parameters != null)
            {
                paList.AddRange(_Parameters.ToArray());
            }
            var sql = "delete from " + TableName + " " + sbAndWhere.ToString();

            return(new DbParamInfo(sql, paList.ToArray()));
        }
Example #2
0
        public BaseMapper <T> Query(Expression <Func <T, bool> > expression = null)
        {
            ClearArguments();
            var exp = new SqlLmdResolver(DbReadConfig);

            exp.ParaIndex = _paraIndex;
            exp.ResolveExpression(expression);
            _paraIndex = exp.ParaIndex;
            _WhereBuilder.Append(exp.SqlWhere);
            _Parameters.AddRange(exp.Parameters);
            return(this);
        }
Example #3
0
        public BaseMapper <T> Or(Expression <Func <T, bool> > expression)
        {
            if (expression == null)
            {
                return(this);
            }
            var exp = new SqlLmdResolver(DbReadConfig);

            exp.ParaIndex = _paraIndex;
            exp.ResolveExpression(expression, SqlWhereType.Or);
            _paraIndex = exp.ParaIndex;

            _WhereBuilder.Append(exp.SqlWhere);
            _Parameters.AddRange(exp.Parameters);
            return(this);
        }
Example #4
0
        private BaseMapper <T> BuildCondition(Expression <Func <T, bool> > expression, DbConfig config)
        {
            ClearArguments();
            if (expression == null)
            {
                return(this);
            }
            var exp = new SqlLmdResolver(config);

            exp.ParaIndex = _paraIndex;
            exp.ResolveExpression(expression);
            _paraIndex = exp.ParaIndex;

            _WhereBuilder.Append(exp.SqlWhere);
            _Parameters.AddRange(exp.Parameters);
            return(this);
        }