protected virtual InsertSqlClauseBuilder PrepareInsertSqlBuilder(T obj, ORMappingItemCollection mapping) { InsertSqlClauseBuilder builder = ORMapping.GetInsertSqlClauseBuilder(obj, mapping); string startTimeFieldName = GetPropertyFieldName("VersionStartTime", mapping); string endTimeFieldName = GetPropertyFieldName("VersionEndTime", mapping); builder.Remove(b => ((SqlClauseBuilderItemIUW)b).DataField == startTimeFieldName); builder.Remove(b => ((SqlClauseBuilderItemIUW)b).DataField == endTimeFieldName); builder.AppendItem(startTimeFieldName, "@currentTime", "=", true); builder.AppendItem(endTimeFieldName, ConnectionDefine.MaxVersionEndTime); return(builder); }
/// <summary> /// 生成带VersionStartTime和VersionEndTime的InsertBuilder /// </summary> /// <param name="obj"></param> /// <param name="mapping"></param> /// <param name="ignoreProperties">需要忽略的属性</param> /// <returns></returns> public virtual InsertSqlClauseBuilder PrepareInsertSqlBuilder(T obj, ORMappingItemCollection mapping, string[] ignoreProperties) { InsertSqlClauseBuilder builder = ORMapping.GetInsertSqlClauseBuilder(obj, mapping, ignoreProperties); string startTimeFieldName = GetPropertyFieldName("VersionStartTime", mapping); string endTimeFieldName = GetPropertyFieldName("VersionEndTime", mapping); builder.Remove(b => ((SqlClauseBuilderItemIUW)b).DataField == startTimeFieldName); builder.Remove(b => ((SqlClauseBuilderItemIUW)b).DataField == endTimeFieldName); builder.AppendItem(startTimeFieldName, DBTimePointActionContext.CurrentTimeTSqlVarName, "=", true); builder.AppendItem(endTimeFieldName, DBTimePointActionContext.MaxVersionEndTime); return(builder); }
protected virtual string PrepareInsertSql(T obj, ORMappingItemCollection mapping) { InsertSqlClauseBuilder builder = PrepareInsertSqlBuilder(obj, mapping); return(string.Format("INSERT INTO {0}{1}", GetTableName(obj, mapping), builder.ToSqlString(TSqlBuilder.Instance))); }
/// <summary> /// /// </summary> /// <param name="obj"></param> /// <param name="mapping"></param> /// <param name="ignoreProperties">需要忽略的参数</param> /// <returns></returns> public virtual string PrepareInsertSql(T obj, ORMappingItemCollection mapping, string[] ignoreProperties) { InsertSqlClauseBuilder builder = this.PrepareInsertSqlBuilder(obj, mapping, ignoreProperties); return(string.Format("INSERT INTO {0}{1}", this.GetTableName(obj, mapping), builder.ToSqlString(TSqlBuilder.Instance))); }