/// <summary>
        /// 提供将提供的实体添加到数据库的方法
        /// </summary>
        /// <param name="item">增加的实体</param>
        /// <param name="connectionString">自定应的连接字符串</param>
        /// <param name="dataBaseType">自定应数据库类型</param>
        /// <param name="frameMappingType">所应用的映射类型</param>
        /// <returns>返回影响的行数</returns>
        internal static int Add(object item, string connectionString, FrameData.DataBaseType dataBaseType, FrameMappingType frameMappingType)
        {
            Dictionary <string, object> columnDic = FrameData.FrameDataBase.GetColumnDic(item, frameMappingType);
            string insertSql = FrameGenerateSql.GenerateInsertSql(item.GetType().ToString(), columnDic, dataBaseType);

            return(FrameData.FrameDataBase.ExecuteNonQuery(connectionString, insertSql, System.Data.CommandType.Text, FrameDataBase.GetParameters(columnDic, dataBaseType), dataBaseType));
        }
        /// <summary>
        /// 提供删除传入实体的方法
        /// 条件为主键相同,该实体必须有且仅有一个字段被特性 [PrimaryKeyAttribute] 标识为主键
        /// </summary>
        /// <param name="item">要删除的 实体</param>
        /// <param name="connectionString">自定义的 连接字符串</param>
        /// <param name="dataBaseType">自定义 数据库类型</param>
        /// <returns>返回影响的 行数</returns>
        internal static int Delete(object item, string connectionString, FrameData.DataBaseType dataBaseType)
        {
            Dictionary <string, object> primaryKeyDic = FrameData.FrameDataBase.GetColumnDicByUserAttribute <CoreAttribute.PrimaryKeyAttribute>(item, null);

            if (primaryKeyDic.Count > 1)
            {
                throw new Exception(FrameWork.Core.Resources.Exceptions.FrameCHExceptionResource.__FrameEntityPrimaryKeyToMary);
            }
            if (primaryKeyDic.Count < 1)
            {
                throw new Exception(FrameWork.Core.Resources.Exceptions.FrameCHExceptionResource.__FrameEntityPrimaryKeyNull);
            }
            string deleteSql = FrameGenerateSql.GenerateDeleteSql(item.GetType().ToString(), primaryKeyDic.First().Key, dataBaseType);

            return(FrameData.FrameDataBase.ExecuteNonQuery(connectionString, deleteSql, System.Data.CommandType.Text, FrameDataBase.GetParameters(primaryKeyDic, dataBaseType), dataBaseType));
        }
Exemple #3
0
 /// <summary>
 /// 提供修改传入实体的方法
 /// 条件为主键相同,该实体必须有且仅有一个字段被特性 [PrimaryKeyAttribute] 标识为主键
 /// 默认按字段映射
 /// </summary>
 /// <param name="connectionString">自定应的连接字符串</param>
 /// <param name="dataBaseType">自定应数据库类型</param>
 /// <returns>返回影响的行数</returns>
 public int Update(string connectionString, FrameData.DataBaseType dataBaseType)
 {
     return(FrameEntityBLL.Update(this, connectionString, dataBaseType, FrameMappingType.Field));
 }
Exemple #4
0
 /// <summary>
 /// 提供将提供的实体添加到数据库的方法
 /// </summary>
 /// <param name="connectionString">自定应的连接字符串</param>
 /// <param name="dataBaseType">自定应数据库类型</param>
 /// <param name="frameMappingType">所应用的映射类型</param>
 /// <returns>返回影响的行数</returns>
 public int Add(string connectionString, FrameData.DataBaseType dataBaseType, FrameMappingType frameMappingType)
 {
     return(FrameEntityBLL.Add(this, connectionString, dataBaseType, frameMappingType));
 }
Exemple #5
0
 /// <summary>
 /// 提供删除传入实体的方法
 /// 条件为主键相同,该实体必须有且仅有一个字段被特性 [PrimaryKeyAttribute] 标识为主键
 /// </summary>
 /// <param name="connectionString">自定义的 连接字符串</param>
 /// <param name="dataBaseType">自定义 数据库类型</param>
 /// <returns>返回影响的 行数</returns>
 public int Delete(string connectionString, FrameData.DataBaseType dataBaseType)
 {
     return(FrameEntityBLL.Delete(this, connectionString, dataBaseType));
 }
Exemple #6
0
        /// <summary>
        /// 生成删除该实体的sql语句
        /// </summary>
        /// <param name="tableName">表名称</param>
        /// <param name="primaryKeyName">主键列名称</param>
        /// <param name="frameDataBaseType">数据库类型</param>
        /// <returns>返回生成的删除数据的sql语句</returns>
        internal static string GenerateDeleteSql(string tableName, string primaryKeyName, FrameData.DataBaseType frameDataBaseType)
        {
            StringBuilder delTableSql = new StringBuilder(" DELETE FROM " + GetTableName(tableName) + " WHERE " + primaryKeyName + " = " + FrameData.FrameDataBase.CreateParameterName(primaryKeyName, frameDataBaseType));

            return(delTableSql.ToString());
        }
Exemple #7
0
        /// <summary>
        /// 生成修改传入表的的sql语句
        /// </summary>
        /// <param name="tableName">要修改的表的名称</param>
        /// <param name="primaryKeyName">主键列的列名称</param>
        /// <param name="list">要更新的列的列表</param>
        /// <param name="frameDataBaseType">数据库类型</param>
        /// <returns>返回生成的更新表的sql语句</returns>
        internal static string GenerateUpdateSql(string tableName, string primaryKeyName, Dictionary <string, object> list, FrameData.DataBaseType frameDataBaseType)
        {
            StringBuilder updateTableSql = new StringBuilder(" UPDATE " + GetTableName(tableName) + " SET ");

            foreach (string column in list.Keys)
            {
                if (!column.Compare(primaryKeyName, true))
                {
                    updateTableSql.Append(column + " = " + FrameData.FrameDataBase.CreateParameterName(column, frameDataBaseType) + ",");
                }
            }

            return(updateTableSql.Remove(updateTableSql.Length - 1, 1).Append(" WHERE " + primaryKeyName + " = " + FrameData.FrameDataBase.CreateParameterName(primaryKeyName, frameDataBaseType)).ToString());
        }
Exemple #8
0
        /// <summary>
        /// 生成插入数据的sql语句
        /// </summary>
        /// <param name="tableName">表的名称</param>
        /// <param name="list">要插入的列的列表</param>
        /// <param name="frameDataBaseType">数据库类型</param>
        /// <returns>返回生成的插入的sql语句</returns>
        internal static string GenerateInsertSql(string tableName, Dictionary <string, object> list, FrameData.DataBaseType frameDataBaseType)
        {
            StringBuilder insertTableSql  = new StringBuilder("INSERT INTO " + GetTableName(tableName) + " (");
            StringBuilder insertValuesSql = new StringBuilder(" VALUES ( ");

            foreach (KeyValuePair <string, object> column in list)
            {
                insertTableSql.Append(" " + column.Key + ",");
                insertValuesSql.Append(" " + FrameData.FrameDataBase.CreateParameterName(column.Key, frameDataBaseType) + ",");
            }

            return(insertTableSql.ToString().TrimEnd(',') + " ) " + insertValuesSql.ToString().TrimEnd(',') + " )");
        }
 /// <summary>
 /// 提供将提供的实体添加到数据库的方法,
 /// 默认使用 映射字段的方式 生成sql语句
 /// </summary>
 /// <param name="item">增加的实体</param>
 /// <param name="connectionString">自定应的连接字符串</param>
 /// <param name="dataBaseType">自定应数据库类型</param>
 /// <returns>返回影响的行数</returns>
 internal static int Add(object item, string connectionString, FrameData.DataBaseType dataBaseType)
 {
     return(Add(item, connectionString, dataBaseType, FrameMappingType.Field));
 }
Exemple #10
0
 /// <summary>
 /// 根据不同的映射类型及数据库类型返回实体对象的Parameter参数列表
 /// </summary>
 /// <typeparam name="TAttribute">用户自定义特性</typeparam>
 /// <param name="item">实体或匿名实体</param>
 /// <param name="smartDataBaseType">数据库类型</param>
 /// <param name="mapingPropertyName">自定义特性映射属性名称</param>
 /// <returns>Parameter参数列表</returns>
 public static List <DbParameter> GetParametersByUserAttribute <TAttribute>(object item, FrameData.DataBaseType smartDataBaseType, string mapingPropertyName) where TAttribute : Attribute
 {
     return(FrameWork.Core.DataCommon.GetParametersByUserAttribute <TAttribute>(item, smartDataBaseType, mapingPropertyName));
 }
Exemple #11
0
 /// <summary>
 /// 根据不同的数据库类型返回实体对象的Parameter参数列表
 /// </summary>
 /// <param name="list">键值对</param>
 /// <param name="smartDataBaseType">数据库类型</param>
 /// <returns>Parameter参数列表</returns>
 public static List <DbParameter> GetParameters(Dictionary <string, object> list, FrameData.DataBaseType smartDataBaseType)
 {
     return(FrameWork.Core.DataCommon.GetParameters(list, smartDataBaseType));
 }
Exemple #12
0
 /// <summary>
 /// 根据不同的映射类型及数据库类型返回实体对象的Parameter参数列表
 /// </summary>
 /// <param name="item">实体或匿名实体</param>
 /// <param name="smartDataBaseType">数据库类型</param>
 /// <param name="smartMappingType">映射方式</param>
 /// <returns>Parameter参数列表</returns>
 public static List <DbParameter> GetParameters(object item, FrameData.DataBaseType smartDataBaseType, FrameMappingType smartMappingType)
 {
     return(FrameWork.Core.DataCommon.GetParameters(item, smartDataBaseType, smartMappingType));
 }