/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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()); }
/// <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()); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }