public static void Up(Type targetType) { var map = Reflector.BuildMapFromType(targetType); if (TableExists(map.TableName)) { return; } StringBuilder sql = new StringBuilder(); sql.AppendFormat("CREATE TABLE \"{0}\"{1}", map.TableName, Environment.NewLine); sql.AppendLine("("); sql.AppendFormat("\t\"{0}\" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, {1}", map.PrimaryKey.ColumName, Environment.NewLine); for (int i = 0; i < map.Columns.Count; i++) { var token = map.Columns[i]; string dbType = "TEXT"; if (token.SourceType == typeof(Int16) || token.SourceType == typeof(Int32) || token.SourceType == typeof(Int64)) { dbType = "INTEGER"; } sql.AppendFormat("\t\"{0}\" {1}{2}{3}", token.ColumName, dbType, i < map.Columns.Count - 1 ? "," : "", // Skip comma for last column Environment.NewLine); } // Remove last comma sql.AppendLine(")"); // Execute creation script for table ClientState.Current.DataService.ExecuteNonQuery(sql.ToString()); }