protected override void PreToSql() { var identities = GetSeqNames(); var insertCount = InsertObjs.Count(); InsertBuilder.OracleSeqInfoList = new Dictionary <string, int>(); if ((identities.HasValue() && insertCount > 1) || InsertBuilder.IsBlukCopy) { Check.Exception(identities.Count != identities.Distinct().Count(), "The field sequence needs to be unique"); foreach (var seqName in identities) { int seqBeginValue = 0; seqBeginValue = this.Ado.GetInt("select " + seqName + ".Nextval from dual"); //Console.WriteLine(seqBeginValue); var nextLength = insertCount - 1; if (nextLength > 0) { StringBuilder sb = new StringBuilder(); sb.AppendLine(" select " + seqName + ".nextval,t.* from ("); for (int i = 0; i < nextLength; i++) { sb.AppendLine(" select 1 from dual"); if (i < (nextLength - 1)) { sb.AppendLine("union all"); } } sb.AppendLine(" )t"); this.Ado.SqlQuery <int>(sb.ToString()); } InsertBuilder.OracleSeqInfoList.Add(seqName, seqBeginValue); } } base.PreToSql(); }
internal void Init() { InsertBuilder.EntityInfo = this.EntityInfo; Check.Exception(InsertObjs == null || InsertObjs.Count() == 0, "InsertObjs is null"); int i = 0; foreach (var item in InsertObjs) { List <DbColumnInfo> insertItem = new List <DbColumnInfo>(); foreach (var column in EntityInfo.Columns) { var columnInfo = new DbColumnInfo() { Value = column.PropertyInfo.GetValue(item, null), DbColumnName = GetDbColumnName(column.PropertyName), PropertyName = column.PropertyName, PropertyType = UtilMethods.GetUnderType(column.PropertyInfo), TableId = i }; if (columnInfo.PropertyType.IsEnum()) { columnInfo.Value = Convert.ToInt64(columnInfo.Value); } insertItem.Add(columnInfo); } this.InsertBuilder.DbColumnInfoList.AddRange(insertItem); ++i; } }
protected override void PreToSql() { var identities = GetSeqNames(); var insertCount = InsertObjs.Count(); InsertBuilder.OracleSeqInfoList = new Dictionary <string, int>(); if (identities.HasValue() && insertCount > 1) { Check.Exception(identities.Count != identities.Distinct().Count(), "The field sequence needs to be unique"); foreach (var seqName in identities) { int seqBeginValue = 0; this.Ado.ExecuteCommand("alter sequence " + seqName + " increment by " + insertCount); seqBeginValue = this.Ado.GetInt("select " + seqName + ".Nextval from dual") - insertCount; this.Ado.ExecuteCommand("alter sequence " + seqName + " increment by " + 1); InsertBuilder.OracleSeqInfoList.Add(seqName, seqBeginValue); } } base.PreToSql(); }
internal void Init() { InsertBuilder.EntityInfo = this.EntityInfo; Check.Exception(InsertObjs == null || InsertObjs.Count() == 0, "InsertObjs is null"); int i = 0; foreach (var item in InsertObjs) { List <DbColumnInfo> insertItem = new List <DbColumnInfo>(); if (item is Dictionary <string, object> ) { SetInsertItemByDic(i, item, insertItem); } else { SetInsertItemByEntity(i, item, insertItem); } this.InsertBuilder.DbColumnInfoList.AddRange(insertItem); ++i; } }