/// <summary> /// 创建一个实体对象的Insert语句 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="data">传入的对象</param> /// <param name="mappingType">映射类型</param> /// <param name="isFilterByT">是否按类型进行映射过滤</param> /// <returns>Insert语句</returns> public static string GetInsertSql <T>(T data, Type mappingType, bool isFilterByT) { //获取映射关系集合 ORMappingItemCollection mappings = ORMapping.GetMappingInfo(mappingType); //过滤 if (isFilterByT) { mappings = mappings.FilterMappingInfoByDeclaringType(mappingType); } return(String.Format("{0} {1} ", ORMapping.GetInsertSql(data, mappings, TSqlBuilder.Instance), TSqlBuilder.Instance.DBStatementSeperator)); }
/// <summary> /// 创建实体对象的Update语句 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="data">实体对象</param> /// <param name="mappingType">映射类型</param> /// <param name="isFilterByT">是否按实体类型进行过滤</param> /// <returns>Update语句</returns> public static string GetUpdateSql <T>(T data, Type mappingType, bool isFilterByT) { //获取映射关系集合 ORMappingItemCollection mappings = ORMapping.GetMappingInfo(mappingType); //过滤 if (isFilterByT) { mappings = mappings.FilterMappingInfoByDeclaringType(mappingType); } StringBuilder sqlStr = new StringBuilder(); sqlStr.Append(ORMapping.GetUpdateSql(data, mappings, TSqlBuilder.Instance)); sqlStr.Append(TSqlBuilder.Instance.DBStatementSeperator); sqlStr.Append(String.Format(" IF (@@ROWCOUNT = 0) BEGIN {0} END ", ORMapping.GetInsertSql(data, mappings, TSqlBuilder.Instance))); sqlStr.Append(TSqlBuilder.Instance.DBStatementSeperator); return(sqlStr.ToString()); }
public static string GetDeleteSql <T>(T data, Type mappingType, bool isFilterByT) { //获取映射关系集合 ORMappingItemCollection mappings = ORMapping.GetMappingInfo(mappingType); //过滤 if (isFilterByT) { mappings = mappings.FilterMappingInfoByDeclaringType(mappingType); } //创建Where子句表达式 WhereSqlClauseBuilder builder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(data, mappings); ExceptionHelper.FalseThrow(builder.Count > 0, "必须为对象{0}指定关键字", typeof(T)); return(String.Format(" DELETE FROM {0} WHERE {1} {2} ", mappings.TableName, builder.ToSqlString(TSqlBuilder.Instance), TSqlBuilder.Instance.DBStatementSeperator)); }