Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Main()
- {
- var dataContextName = "ImageBoard";
- var schemaName = "user_image";
- var outputFolder = "c:\\data\\";
- GenerateClasses(dataContextName, schemaName, outputFolder);
- }
- public void GenerateClasses(string dataContextName, string schemaName, string outputFolder)
- {
- foreach (var table in this.Mapping.GetTables().Where(t =>
- !t.TableName.Contains("sysdiagrams"))
- .OrderBy(t => t.TableName))
- {
- var tableName = Regex
- .Replace(table.TableName, @"([\[\]])", string.Empty)
- .Replace(schemaName + ".", string.Empty);
- var contents = new List<string>();
- var columns = from c in table.RowType.DataMembers
- where c.DbType != null
- select new {
- c.Name,
- c.DbType,
- cType = c.Type.Name,
- c.CanBeNull,
- c.Type,
- c.MappedName,
- c.IsPrimaryKey };
- StringBuilder sb = new StringBuilder();
- sb.AppendLine($"[MetadataType(typeof({tableName}Metadata))]");
- sb.AppendLine($"public partial class {tableName} {{");
- sb.AppendLine($"\tpublic static bool Add(ref {tableName} {tableName.ToLower()}) {{");
- sb.AppendLine($"\t\tvar db = new {dataContextName}DataContext();");
- sb.AppendLine($"\t\tvar result = false;\n");
- sb.AppendLine($"\t\ttry {{");
- sb.AppendLine($"\t\t\tresult = true;");
- sb.AppendLine($"\t\t}}");
- sb.AppendLine($"\t\tcatch(Exception ex) {{");
- sb.AppendLine($"\t\t\tresult = false;");
- sb.AppendLine($"\t\t}}\n");
- sb.AppendLine($"\t\treturn result;");
- sb.AppendLine($"\t}}\n");
- sb.AppendLine($"\tpublic static bool Delete({tableName} {tableName.ToLower()}) {{");
- sb.AppendLine($"\t\tvar db = new {dataContextName}DataContext();");
- sb.AppendLine($"\t\tvar result = false;\n");
- sb.AppendLine($"\t\ttry {{");
- sb.AppendLine($"\t\t\tresult = true;");
- sb.AppendLine($"\t\t}}");
- sb.AppendLine($"\t\tcatch(Exception ex) {{");
- sb.AppendLine($"\t\t\tresult = false;");
- sb.AppendLine($"\t\t}}\n");
- sb.AppendLine($"\t\treturn result;");
- sb.AppendLine($"\t}}\n");
- sb.AppendLine($"\tpublic static bool Update({tableName} {tableName.ToLower()}) {{");
- sb.AppendLine($"\t\tvar db = new {dataContextName}DataContext();");
- sb.AppendLine($"\t\tvar result = false;\n");
- sb.AppendLine($"\t\ttry {{");
- sb.AppendLine($"\t\t\tresult = true;");
- sb.AppendLine($"\t\t}}");
- sb.AppendLine($"\t\tcatch(Exception ex) {{");
- sb.AppendLine($"\t\t\tresult = false;");
- sb.AppendLine($"\t\t}}\n");
- sb.AppendLine($"\t\treturn result;");
- sb.AppendLine($"\t}}\n");
- sb.AppendLine($"\tpublic static bool Get(int {tableName.ToLower()}ID, out {tableName} {tableName.ToLower()}) {{");
- sb.AppendLine($"\t\tvar db = new {dataContextName}DataContext();");
- sb.AppendLine($"\t\tvar result = false;\n");
- sb.AppendLine($"\t\ttry {{");
- sb.AppendLine($"\t\t\tresult = true;");
- sb.AppendLine($"\t\t}}");
- sb.AppendLine($"\t\tcatch(Exception ex) {{");
- sb.AppendLine($"\t\t\tresult = false;");
- sb.AppendLine($"\t\t}}\n");
- sb.AppendLine($"\t\treturn result;");
- sb.AppendLine($"\t}}\n");
- sb.AppendLine($"\tprivate sealed class {tableName}Metadata {{");
- foreach (var column in columns.Where(c => !c.IsPrimaryKey))
- {
- sb.AppendLine($"\t\t[Display(Name = \"{column.Name}\", Prompt = \"{column.Name}\")]");
- if (!column.CanBeNull)
- {
- sb.AppendLine($"\t\t[Required(ErrorMessage = \"Required\")]");
- }
- sb.Append($"\t\tpublic {ConvertType(column.cType)} {column.Name} {{ get; set; }}\n");
- }
- sb.AppendLine($"\t}}");
- sb.AppendLine($"}}\n");
- var classCode = sb.ToString();
- File.WriteAllText($"{outputFolder}{tableName}.cs", sb.ToString());
- }
- }
- public string ConvertType(string sqlTypeName)
- {
- switch (sqlTypeName)
- {
- case "DateTime":
- return "DateTime";
- case "Int16":
- case "Int32":
- return "int";
- case "Boolean":
- case "Bit":
- return "bool";
- case "String":
- return "string";
- default:
- return sqlTypeName;
- }
- }
Add Comment
Please, Sign In to add comment