Ejemplo n.º 1
0
        public static int Delete <T>(this DbAccessor db, object objIdParameters)
        {
            var         tableMapping = new TableMapping(typeof(T));
            ISqlBuilder sqlBuilder   = new DefaultSqlBuilder(tableMapping);

            #region 处理参数为基础类型,即直接为主键的值
            if (objIdParameters.GetType() == typeof(string) || objIdParameters.GetType().GetTypeInfo().IsPrimitive)
            {
                var dicParam = new Dictionary <string, object>();

                var keyColumns = tableMapping.GetKeyColumns();

                if (keyColumns.Count == 0)
                {
                    throw new Exceptions.EntityException("实体没有设置主键!");
                }

                string keyColumnName = keyColumns[0].ColumnName;

                dicParam.Add(keyColumnName, objIdParameters);
                objIdParameters = dicParam;
            }
            #endregion

            return(db.ExecuteNonQuery(sqlBuilder.BuildDelete(), objIdParameters));
        }
Ejemplo n.º 2
0
        public static int Insert <T>(this DbAccessor db, object objParameters)
        {
            var mapping = new TableMapping(typeof(T));

            mapping.FilterColumn(objParameters);
            ISqlBuilder sqlBuilder = new DefaultSqlBuilder(mapping);

            return(db.ExecuteNonQuery(sqlBuilder.BuildInsert(), objParameters));
        }
Ejemplo n.º 3
0
        public static int UpdateFields(this DbAccessor db, object objEntity, params string[] inclusiveFields)
        {
            List <string> lsInclusiveFields = new List <string>();

            lsInclusiveFields.AddRange(inclusiveFields);
            var mapping = new TableMapping(objEntity.GetType());

            foreach (var item in mapping.GetKeyColumns())
            {
                lsInclusiveFields.Add(item.ColumnName);
            }
            mapping.FilterColumn(lsInclusiveFields.ToArray());
            ISqlBuilder sqlBuilder = new DefaultSqlBuilder(mapping);

            return(db.ExecuteNonQuery(sqlBuilder.BuildUpdate(), objEntity));
        }
Ejemplo n.º 4
0
        public static int Update(this DbAccessor db, object objEntity)
        {
            ISqlBuilder sqlBuilder = new DefaultSqlBuilder(new TableMapping(objEntity.GetType()));

            return(db.ExecuteNonQuery(sqlBuilder.BuildUpdate(), objEntity));
        }