private void ProcessColumn(ColumnInfo ci, DbDialect dd)
 {
     string nullDefine = ci.AllowNull ? dd.NullString : dd.NotNullString;
     _sql.Append("\n\t");
     _sql.Append(dd.QuoteForColumnName(ci.Key));
     _sql.Append(" ");
     if (ci.IsDbGenerate && dd.IdentityTypeString != null)
     {
         _sql.Append(dd.IdentityTypeString);
     }
     else
     {
         _sql.Append(dd.GetTypeName(ci));
     }
     if (ci.IsDbGenerate)
     {
         _sql.Append(" ").Append(dd.IdentityColumnString);
     }
     if (ci.IsKey)
     {
         ProcessKeyColumn(ci, dd, nullDefine);
     }
     else
     {
         _sql.Append(nullDefine);
     }
     _sql.Append(",");
 }
Ejemplo n.º 2
0
 public virtual CreateTableStatementBuilder GetCreateTableStatementBuilder()
 {
     var builder = new CreateTableStatementBuilder(this.Context.Info.From.MainTableName);
     foreach (MemberHandler member in this.Context.Info.Members)
     {
         if ((!member.Is.HasMany && !member.Is.HasOne) && !member.Is.HasAndBelongsToMany)
         {
             var item = new ColumnInfo(member);
             builder.Columns.Add(item);
         }
     }
     foreach (string key in this.Context.Info.Indexes.Keys)
     {
         bool unique = this.Context.Info.UniqueIndexes.ContainsKey(key);
         builder.Indexes.Add(new DbIndex(key, unique, this.Context.Info.Indexes[key].ToArray()));
     }
     return builder;
 }
Ejemplo n.º 3
0
 public virtual string GetTypeName(ColumnInfo ci)
 {
     return GetTypeName(DataTypeParser.Parse(ci.ValueType), ci.IsUnicode, ci.Length, ci.DecimalPart);
 }
 private void ProcessKeyColumn(ColumnInfo ci, DbDialect dd, string nullDefine)
 {
     if (_isMutiKey)
     {
         _sql.Append(nullDefine);
     }
     else
     {
         if (ci.ValueType == typeof(Guid) || !dd.IdentityIncludePKString || !ci.IsDbGenerate)
         {
             if (!ci.IsDbGenerate)
             {
                 _sql.Append(nullDefine);
             }
             _sql.Append(" PRIMARY KEY");
         }
     }
 }