private TableInfo CreateTableInfo(IRequest context)
{
var tableName = context.Access().ResolveTableName(TableName);
var idColumnCount = Columns.Count(x => x.IsIdentity);
if (idColumnCount > 1)
throw new InvalidOperationException("More than one IDENTITY column specified.");
bool ignoreCase = context.Query.IgnoreIdentifiersCase();
var columnChecker = new TableColumnChecker(Columns, ignoreCase);
var tableInfo = new TableInfo(tableName);
foreach (var column in Columns) {
var columnInfo = CreateColumnInfo(context, tableName.Name, column, columnChecker);
if (column.IsIdentity)
columnInfo.DefaultExpression = SqlExpression.FunctionCall("UNIQUEKEY", new SqlExpression[] {
SqlExpression.Constant(tableName.ToString())
});
tableInfo.AddColumn(columnInfo);
}
return tableInfo;
}