public void ExportEntityClass() { if (dname == null) { cerr.WriteLine("select a database first"); return; } string path = cmd.OutputPath(ConfigKey._GENERATOR_DC_PATH, $"{ConfigurationEnvironment.MyDocuments}\\dc"); string ns = cmd.GetValue("ns", ConfigKey._GENERATOR_DC_NS, "Sys.DataModel.DataContracts"); if (tname != null) { cout.WriteLine("start to generate {0} entity framework class file", tname); var builder = new EntityClassBuilder(cmd, tname) { }; builder.SetNamespace(ns); if (!builder.IsAssocication) { string file = builder.WriteFile(path); cout.WriteLine("completed {0} => {1}", tname.ShortName, file); } } else if (dname != null) { cout.WriteLine("start to generate {0} entity framework class to directory: {1}", dname, path); CancelableWork.CanCancel(cts => { var md = new MatchedDatabase(dname, cmd); //cfg.exportExcludedTables); TableName[] tnames = md.TableNames(); foreach (var tn in tnames) { if (cts.IsCancellationRequested) { return; } try { var builder = new EntityClassBuilder(cmd, tn); builder.SetNamespace(ns); if (!builder.IsAssocication) { string file = builder.WriteFile(path); cout.WriteLine("generated for {0} at {1}", tn.ShortName, path); } } catch (Exception ex) { cerr.WriteLine($"failed to generate {tn.ShortName}, {ex.Message}"); } } cout.WriteLine("completed"); return; }); } else { cerr.WriteLine("warning: table or database is not seleted"); } }
public void ExportEntityClass(Command cmd) { if (dname == null) { stdio.ErrorFormat("select a database first"); return; } string path = cmd.GetValue("out") ?? cfg.GetValue<string>("dc.path", $"{Configuration.MyDocuments}\\dc"); string ns = cmd.GetValue("ns") ?? cfg.GetValue<string>("dc.ns", "Sys.DataModel.DataContracts"); if (tname != null) { stdio.WriteLine("start to generate {0} entity framework class file", tname); var builder = new EntityClassBuilder(ns, cmd, tname); string file = builder.WriteFile(path); stdio.WriteLine("completed {0} => {1}", tname.ShortName, file); } else if (dname != null) { stdio.WriteLine("start to generate {0} entity framework class to directory: {1}", dname, path); CancelableWork.CanCancel(cts => { var md = new MatchedDatabase(dname, cmd.wildcard, null); //cfg.exportExcludedTables); TableName[] tnames = md.MatchedTableNames; foreach (var tn in tnames) { if (cts.IsCancellationRequested) return; try { var builder = new EntityClassBuilder(ns, cmd, tn); string file = builder.WriteFile(path); stdio.WriteLine("generated for {0} at {1}", tn.ShortName, path); } catch (Exception ex) { stdio.ErrorFormat("failed to generate {0}, {1}", tn.ShortName, ex.Message); } } stdio.WriteLine("completed"); return; }); } else { stdio.ErrorFormat("warning: table or database is not seleted"); } }