private void WriteRowClassProperties(StoredProcedureResultModel result) { int lastIndex = result.Columns.Count - 1; WriteBlockStart(); { for (int i = 0; i < result.Columns.Count; i++) { ColumnModel column = result.Columns[i]; Builder .WriteIndentation() .Write("public ") .Write(column.ClrType.TypeName) .Write(" ") .Write(column.PropertyName) .Write(" { get; set; }") .WriteNewLine(); if(i != lastIndex) { Builder.WriteNewLine(); } } } WriteBlockEnd(); }
private void WriteExecuteMethodReadValues(StoredProcedureResultModel result) { foreach (var column in result.Columns) { Builder .WriteIndentation() .Write(column.PropertyName) .Write(" = ") .Write("GetValueOrDefault<") .Write(column.ClrType.TypeName) .Write(">(reader, \"") .Write(column.DatabaseName) .Write("\"),") .WriteNewLine(); } }
private StoredProcedureResultModel GetResult(SqlDataReader reader) { DataTable table = reader.GetSchemaTable(); if (table == null) { return null; } var model = new StoredProcedureResultModel(); model.Columns = new List<ColumnModel>(table.Columns.Count); foreach (DataRow row in table.Rows) { var type = (Type)row["DataType"]; var allowDbNull = (bool?)row["AllowDBNull"]; model.Columns.Add(new ColumnModel { DatabaseName = row["ColumnName"] as string, ClrType = _typeConverter.ToClrType(type, allowDbNull == true) }); } return model; }