예제 #1
0
파일: DbTable.cs 프로젝트: ppetrov/Cchbc
        public static DbTable Create(string name, DbColumn[] columns, string className = null)
        {
            if (name == null) throw new ArgumentNullException(nameof(name));
            if (columns == null) throw new ArgumentNullException(nameof(columns));
            if (columns.Length == 0) throw new ArgumentOutOfRangeException(nameof(columns));

            var hasPrimaryKey = false;
            foreach (var column in columns)
            {
                if (column.IsPrimaryKey)
                {
                    hasPrimaryKey = true;
                    break;
                }
            }

            var tableColumns = new List<DbColumn>(columns.Length + 1);
            if (!hasPrimaryKey)
            {
                tableColumns.Add(DbColumn.PrimaryKey());
            }
            tableColumns.AddRange(columns);

            return new DbTable(name, tableColumns, className);
        }
예제 #2
0
파일: DbScript.cs 프로젝트: ppetrov/Cchbc
        private static void AppendColumnDefinition(StringBuilder buffer, DbColumn column)
        {
            buffer.Append('[');
            buffer.Append(column.Name);
            buffer.Append(']');

            buffer.Append(' ');
            buffer.Append(column.Type.Name);

            buffer.Append(' ');
            buffer.Append(column.IsNullable ? @"NULL" : @"NOT NULL");

            if (column.IsPrimaryKey)
            {
                buffer.Append(' ');
                buffer.Append(@"PRIMARY KEY AUTOINCREMENT");
            }
        }
예제 #3
0
 private static void AppendColumnParameterAssignment(StringBuilder buffer, DbColumn column)
 {
     AppendColumnName(buffer, column);
     buffer.Append(' ');
     buffer.Append('=');
     buffer.Append(' ');
     AppendParameterName(buffer, column);
 }
예제 #4
0
 private static void AppendParameterName(StringBuilder buffer, DbColumn column)
 {
     buffer.Append(ParameterPlaceholder);
     buffer.Append(ParameterPrefix);
     AppendColumnName(buffer, column);
 }
예제 #5
0
 private static void AppendColumnName(StringBuilder buffer, DbColumn column)
 {
     buffer.Append(column.Name);
 }