internal List<ColumnModel> GetColumns(TableModel table) { var columns = new List<ColumnModel>(); using (var cmd = GetCommand("SELECT c.name AS ColumnName, t.name AS Type, c.is_nullable FROM sys.columns c JOIN sys.types t ON c.system_type_id = t.system_type_id WHERE object_id = " + table.object_id)) { using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { var column = new ColumnModel() { Name = reader["ColumnName"].ToString(), Type = ConvertType(reader["Type"].ToString()), Nullable = bool.Parse(reader["is_nullable"].ToString()) }; if(column.Type != "ignore") { columns.Add(column); } } } } return columns; }
private void AddDeleteMethods(TableModel table, ColumnModel primaryKeyColumn) { Add(string.Format("public virtual void Delete({0} id)", primaryKeyColumn.Type)); Open(); Add(string.Format("ExecuteParamNonQuery(\"DELETE FROM {0} WHERE {1} = @{1}\", new SqlParameter(\"@{1}\", id));", table.Name, primaryKeyColumn.Name)); Close(); Add(string.Format("public virtual void Delete({0} model)", table.ModelName)); Open(); Add(string.Format("Delete(model.{0});", primaryKeyColumn.Name)); Close(); }
private string GetStringType(ColumnModel column) { var sb = new StringBuilder(); if (column.Nullable && !column.Type.Equals("string")) { sb.Append("Nullable"); } sb.Append(column.Type.First().ToString().ToUpper()); sb.Append(column.Type.Substring(1)); return sb.ToString(); }
private void AddConstructor(TableModel table, ColumnModel primaryKeyColumn) { Add(string.Format("internal {0}Repository(SqlConnection connection) : base(connection, new {0}Mapper())", table.ModelName)); Add("{}"); }