public void TestDbToEntitiesSourceGenerator() { var xmlConfigTemplate = @"<Settings> <Provider>@Provider@</Provider> <ConnectionString>@ConnString@</ConnectionString> <OutputPath>_Generated_BookEntities_@[email protected]</OutputPath><!-- Will go into bin folder. --> <Namespace>Vita.Samples.BooksGenerated</Namespace> <AppClassName>BookStoreApp</AppClassName> <Schemas>books</Schemas> <Options>Binary16AsGuid, BinaryKeysAsGuid, AutoOnGuidPrimaryKeys, AddOneToManyLists,GenerateConsoleAppCode,UtcDates</Options> <AutoValues>CreatedOn:CreatedOn</AutoValues> <ForceDataTypes>@ForceDataTypes@</ForceDataTypes> <!-- for SQLite --> </Settings> "; var sqliteForceTypes = "CreatedOn:System.DateTime,CreatedIn:System.Guid,UpdatedIn:System.Guid"; var forceTypes = SetupHelper.ServerType == DbServerType.Sqlite? sqliteForceTypes : string.Empty; var driver = SetupHelper.Driver; var xml = xmlConfigTemplate .Replace("@Provider@", SetupHelper.ServerType.ToString()) .Replace("@ConnString@", SetupHelper.ConnectionString) .Replace("@ForceDataTypes@", forceTypes); var xmlConfig = new XmlDocument(); xmlConfig.LoadXml(xml); var traceFbk = new TraceProcessFeedback(); var dbfirst = new DbFirstProcessor(traceFbk); try { var success = dbfirst.GenerateEntityModelSources(xmlConfig); Assert.IsTrue(success, "Source generation failed."); } catch (Exception ex) { var err = ex.ToLogString(); Debug.WriteLine(err); throw; } }
private static int Run(string[] args) { //Read command line parameters UnpackArguments(args); if(_showHelp) { ShowHelp(); Console.WriteLine(); if(string.IsNullOrEmpty(_configFile)) return 0; } //get config file name if(string.IsNullOrEmpty(_configFile)) { WriteError("Invalid arguments - missing config file parameter (/cfg:<file>)."); ShowHelp(); return -1; //return error } if(!File.Exists(_configFile)) { WriteError("Config file not found: " + _configFile); return -1; //return error } //load config var xmlConfig = LoadConfig(_configFile); var fback = new ConsoleProcessFeedback(); //execute command switch(_command) { case "dbfirst": Console.WriteLine("COMMAND: dbfirst"); Console.WriteLine("Generating entity definitions from the database..."); var dbFirst = new DbFirstProcessor(fback); var success = dbFirst.GenerateEntityModelSources(xmlConfig); return success ? 0 : -1; case "dbupdate": Console.WriteLine("COMMAND: dbupdate"); Console.WriteLine("Generating DB update scripts..."); var dbUpdate = new DbUpdateProcessor(fback); var ok = dbUpdate.GenerateScripts(xmlConfig); return ok ? 0 : -1; default: WriteError(StringHelper.SafeFormat(" Command type arg ({0}) is invalid or missing. Expected 'dbfirst' or 'dbupdate'. ", _command)); ShowHelp(); return -1; } }