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