public void ProcedureTest() { var schema = PrepareModel(); var procedure = new DatabaseStoredProcedure { Name = "SelectCategory" }; var argument = new DatabaseArgument { Name = "p1", DatabaseDataType = "VARCHAR", Length = 10, DataType = DataTypeConverter.FindDataType("VARCHAR", schema.DataTypes, SqlType.SqlServer, null), In = true, }; procedure.Arguments.Add(argument); var rs = new DatabaseResultSet(); var resultColumn = new DatabaseColumn { Name = "Output", DbDataType = "VARCHAR" }; DataTypeConverter.AddDataType(resultColumn); rs.Columns.Add(resultColumn); procedure.ResultSets.Add(rs); schema.StoredProcedures.Add(procedure); var directory = TestHelper.CreateDirectory("MySprocTest"); const string @namespace = "MySprocTest"; var settings = new CodeWriterSettings { Namespace = @namespace, CodeTarget = CodeTarget.Poco, WriteStoredProcedures = true }; var target = new CodeWriter(schema, settings); target.Execute(directory); var procedures = directory.GetDirectories("Procedures").FirstOrDefault(); if (procedures == null) { Assert.Fail("Could not find Procedures subdirectory"); } var files = procedures.GetFiles("*.cs"); var products = files.FirstOrDefault(f => f.Name == "SelectCategory.cs"); Assert.IsNotNull(products, "Should have written SelectCategory class for SelectCategory procedure"); var category = files.FirstOrDefault(f => f.Name == "SelectCategoryResult.cs"); Assert.IsNotNull(category, "Should have written SelectCategoryResult class to the result of the sproc"); }
/// <summary> /// Adds a column. /// </summary> /// <param name="databaseTable">The database table.</param> /// <param name="databaseColumn">The database column.</param> /// <returns></returns> public static DatabaseColumn AddColumn(this DatabaseTable databaseTable, DatabaseColumn databaseColumn) { if (databaseTable == null) { throw new ArgumentNullException("databaseTable", "databaseTable must not be null"); } if (databaseColumn == null) { throw new ArgumentNullException("databaseColumn", "databaseColumn must not be null"); } //adds the column with backreferences databaseTable.Columns.Add(databaseColumn); databaseColumn.Table = databaseTable; databaseColumn.TableName = databaseTable.Name; databaseColumn.DatabaseSchema = databaseTable.DatabaseSchema; DataTypeConverter.AddDataType(databaseColumn); return(databaseColumn); }