/// <summary> /// Gets a parameter based constructor object. /// </summary> private static CodeConstructor GetParameterBasedConstructor(ILanguageProvider languageProvider, Smo.TableViewBase tableView) { var retval = new CodeConstructor { Attributes = MemberAttributes.Public }; foreach (Smo.Column column in tableView.Columns) { var typeName = languageProvider.GetTypeString(column.DataType); var fieldName = languageProvider.GetFormattedInternalFieldName(column.Name); var methodParameterName = languageProvider.GetFormattedParamenterName(column.Name); retval.Parameters.Add(new CodeParameterDeclarationExpression(new CodeTypeReference(typeName), methodParameterName)); retval.Statements.Add(new CodeAssignStatement(new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), fieldName), new CodeArgumentReferenceExpression(methodParameterName))); } return(retval); }