/// <summary> /// Select One Query Method /// </summary> /// <param name="table"></param> /// <returns></returns> private CodeMemberMethod BuildSelect(TableViewTableTypeBase table) { CodeMemberMethod cmSelect = new CodeMemberMethod(); String cp_name = "cp_" + table.Name; cmSelect.Attributes = MemberAttributes.Public; cmSelect.Name = "Select"; cmSelect.Statements.Add(new CodeSnippetExpression("this.Access.CreateProcedureCommand(\"ProcedureName\")".Replace("ProcedureName", cp_name))); cmSelect.Statements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"Operation\", 1, ParameterDirection.Input)")); cmSelect.Comments.Add(new CodeCommentStatement("Selects One By Primary Key, returns a Data Set")); foreach (Column c in table.Columns) { if (c.InPrimaryKey) { MemberGraph mGraph = new MemberGraph(c); cmSelect.Parameters.Add(mGraph.GetParameter()); cmSelect.Statements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.Name + "\", " + mGraph.ParameterName() + ", ParameterDirection.Input)")); } } cmSelect.Statements.Add(new CodeSnippetExpression("var value = this.Access.ExecuteDataSet()")); cmSelect.Statements.Add(new CodeSnippetExpression("return value")); cmSelect.ReturnType = new CodeTypeReference("System.Data.DataSet"); return(cmSelect); }
public CodeTypeDeclaration BuildPoc(TableViewBase rootModel) { CodeTypeDeclaration ctd = new CodeTypeDeclaration(); ConstructorGraph ctorGraph = new ConstructorGraph(); ctd.Name = rootModel.Name; ctd.TypeAttributes = System.Reflection.TypeAttributes.Public; ctd.Attributes = MemberAttributes.Public; ctd.IsPartial = true; CodeAttributeDeclaration cad_DataContract = new CodeAttributeDeclaration(" System.Runtime.Serialization.DataContractAttribute"); ctd.CustomAttributes.Add(cad_DataContract); // Members foreach (Column c in rootModel.Columns) { MemberGraph mGraph = new MemberGraph(c); CodeMemberField c_field = mGraph.GetField(); CodeMemberProperty c_prop = mGraph.GetProperty(); CodeAttributeDeclaration cad_DataMember = new CodeAttributeDeclaration("System.Runtime.Serialization.DataMemberAttribute"); c_prop.CustomAttributes.Add(cad_DataMember); ctd.Members.Add(c_field); ctd.Members.Add(c_prop); } foreach (CodeConstructor cc in ctorGraph.GraphConstructors(rootModel)) { ctd.Members.Add(cc); } return ctd; }
/// <summary> /// Delete Query Method /// </summary> /// <param name="table"></param> /// <returns></returns> private CodeMemberMethod BuildDelete(TableViewTableTypeBase table) { CodeMemberMethod cmDelete = new CodeMemberMethod(); cmDelete.Attributes = MemberAttributes.Public; cmDelete.Name = "Delete"; String cp_name = "cp_" + table.Name; cmDelete.ReturnType = new CodeTypeReference("System.Int32"); cmDelete.Statements.Add(new CodeSnippetExpression("this.Access.CreateProcedureCommand(\"ProcedureName\")".Replace("ProcedureName", cp_name))); cmDelete.Statements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"Operation\", 6, ParameterDirection.Input)")); foreach (Column c in table.Columns) { if (c.InPrimaryKey) { MemberGraph mGraph = new MemberGraph(c); cmDelete.Parameters.Add(mGraph.GetParameter()); cmDelete.Statements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.PropertyName() + "\", " + mGraph.ParameterName() + ", ParameterDirection.Input)")); } } cmDelete.Statements.Add(new CodeSnippetExpression("var value = this.Access.ExecuteNonQuery()")); cmDelete.Statements.Add(new CodeSnippetExpression("return value")); cmDelete.Comments.Add(new CodeCommentStatement("Delete's a record")); return(cmDelete); }
public CodeTypeDeclaration BuildPoco(View view) { CodeTypeDeclaration ctd = new CodeTypeDeclaration(); ConstructorGraph ctorGraph = new ConstructorGraph(); ctd.Name = view.Name; ctd.TypeAttributes = System.Reflection.TypeAttributes.Public; ctd.Attributes = MemberAttributes.Public; ctd.IsPartial = true; // Members foreach (Column c in view.Columns) { MemberGraph mGraph = new MemberGraph(c); ctd.Members.Add(mGraph.GetField()); ctd.Members.Add(mGraph.GetProperty()); } // View only Gets One Constructor ctd.Members.Add(ctorGraph.GraphConstructors(view)[0]); ctd.Members.AddRange(AddMethods(view)); return(ctd); }
public CodeTypeDeclaration BuildPoc(TableViewBase rootModel) { CodeTypeDeclaration ctd = new CodeTypeDeclaration(); ConstructorGraph ctorGraph = new ConstructorGraph(); ctd.Name = rootModel.Name; ctd.TypeAttributes = System.Reflection.TypeAttributes.Public; ctd.Attributes = MemberAttributes.Public; ctd.IsPartial = true; CodeAttributeDeclaration cad_DataContract = new CodeAttributeDeclaration(" System.Runtime.Serialization.DataContractAttribute"); ctd.CustomAttributes.Add(cad_DataContract); // Members foreach (Column c in rootModel.Columns) { MemberGraph mGraph = new MemberGraph(c); CodeMemberField c_field = mGraph.GetField(); CodeMemberProperty c_prop = mGraph.GetProperty(); CodeAttributeDeclaration cad_DataMember = new CodeAttributeDeclaration("System.Runtime.Serialization.DataMemberAttribute"); c_prop.CustomAttributes.Add(cad_DataMember); ctd.Members.Add(c_field); ctd.Members.Add(c_prop); } foreach (CodeConstructor cc in ctorGraph.GraphConstructors(rootModel)) { ctd.Members.Add(cc); } return(ctd); }
public CodeTypeDeclaration BuildPoco(Table table) { CodeTypeDeclaration ctd = new CodeTypeDeclaration(); ConstructorGraph ctorGraph = new ConstructorGraph(); ctd.Name = table.Name; ctd.TypeAttributes = System.Reflection.TypeAttributes.Public; ctd.Attributes = MemberAttributes.Public; ctd.IsPartial = true; // Members foreach (Column c in table.Columns) { MemberGraph mGraph = new MemberGraph(c); ctd.Members.Add(mGraph.GetField()); ctd.Members.Add(mGraph.GetProperty()); } foreach (CodeConstructor cc in ctorGraph.GraphConstructors(table)) { ctd.Members.Add(cc); } ctd.Members.AddRange(AddMethods(table)); return(ctd); }
private CodeMemberMethod BuildFillMethod(TableViewTableTypeBase table) { // Accepts a DataRow and Returns a Poco of this type. CodeMemberMethod cmmFill = new CodeMemberMethod(); cmmFill.Name = "Fill"; cmmFill.Attributes = MemberAttributes.Private; cmmFill.ReturnType = new CodeTypeReference(table.Name); CodeParameterDeclarationExpression cpdeDataRow = new CodeParameterDeclarationExpression(); cpdeDataRow.Name = "row"; cpdeDataRow.Type = new CodeTypeReference("System.Data.DataRow"); cpdeDataRow.Direction = FieldDirection.In; cmmFill.Parameters.Add(cpdeDataRow); var init_Express = new CodeSnippetExpression("new " + table.Name + "()"); var obj = new CodeVariableDeclarationStatement(new CodeTypeReference(table.Name), "obj", init_Express); cmmFill.Statements.Add(obj); foreach (Column c in table.Columns) { String DotNetTypeName = TypeConvertor.ToNetType(c.DataType.SqlDataType).ToString(); MemberGraph mGraph = new MemberGraph(c); System.CodeDom.CodeConditionStatement ccsField = new CodeConditionStatement(); ccsField.Condition = new CodeSnippetExpression("(row[\"" + c.Name + "\"] != System.DBNull.Value)"); //if (!(mGraph.IsReadOnly)) //{ // If Field is nullable Type if (mGraph.IsNullable) { if (mGraph.TypeName() == "String") { ccsField.TrueStatements.Add(new CodeSnippetExpression("obj." + mGraph.PropertyName() + " = row[\"" + c.Name + "\"].ToString()")); } else { ccsField.TrueStatements.Add(new CodeSnippetExpression("obj." + mGraph.PropertyName() + " = ((" + mGraph.TypeName() + ")(row[\"" + c.Name + "\"]))")); } } else { if (mGraph.TypeName() == "String") { ccsField.TrueStatements.Add(new CodeSnippetExpression("obj." + mGraph.PropertyName() + " = row[\"" + c.Name + "\"].ToString()")); } else { ccsField.TrueStatements.Add(new CodeSnippetExpression("obj." + mGraph.PropertyName() + " = ((" + mGraph.TypeName() + ")(row[\"" + c.Name + "\"]))")); } } cmmFill.Statements.Add(ccsField); //} } cmmFill.Statements.Add(new CodeSnippetExpression("return obj")); cmmFill.Comments.Add(new CodeCommentStatement("Returns a Hydrated POCO")); return(cmmFill); }
/// <summary> /// /// </summary> /// <param name="table"></param> /// <returns></returns> public CodeMemberMethod BuildSelectBE(TableViewTableTypeBase table) { CodeMemberMethod cmSelect = new CodeMemberMethod(); cmSelect.Attributes = MemberAttributes.Public; cmSelect.ReturnType = new CodeTypeReference("System.Data.DataSet"); String cp_name = "ssp_" + table.Name; String PocoTypeName = table.Name; String FullPocoTypeName = PocoTypeName; CodeParameterDeclarationExpression cpdePoco = new CodeParameterDeclarationExpression(); cpdePoco.Name = "query"; cpdePoco.Type = new CodeTypeReference(table.Name); cpdePoco.Direction = FieldDirection.In; cmSelect.Parameters.Add(cpdePoco); cmSelect.Attributes = MemberAttributes.Public; cmSelect.Name = "Select"; cmSelect.Statements.Add(new CodeSnippetExpression("this.Access.CreateProcedureCommand(\"" + cp_name + "\")")); foreach (Column c in table.Columns) { MemberGraph mGraph = new MemberGraph(c); String DotNetTypeName = TypeConvertor.ToNetType(c.DataType.SqlDataType).ToString(); System.CodeDom.CodeConditionStatement ccsField = new CodeConditionStatement(); if (mGraph.IsNullable) { ccsField.Condition = new CodeSnippetExpression("query." + mGraph.PropertyName() + ".HasValue"); ccsField.TrueStatements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.PropertyName() + "\",query." + mGraph.PropertyName() + ".Value, ParameterDirection.Input)")); ccsField.FalseStatements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.PropertyName() + "\", null , ParameterDirection.Input)")); } else { ccsField.Condition = new CodeSnippetExpression("query." + mGraph.PropertyName() + " == null"); ccsField.TrueStatements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.PropertyName() + "\", null , ParameterDirection.Input)")); ccsField.FalseStatements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.PropertyName() + "\",query." + mGraph.PropertyName() + ", ParameterDirection.Input)")); } cmSelect.Statements.Add(ccsField); } cmSelect.Statements.Add(new CodeSnippetExpression("return this.Access.ExecuteDataSet()")); cmSelect.Comments.Add(new CodeCommentStatement("Select by Object [Implements Query By Example], returns DataSet")); return(cmSelect); }
/// <summary> /// /// </summary> /// <param name="table"></param> /// <returns></returns> public CodeMemberMethod BuildSelectBE(TableViewTableTypeBase table) { CodeMemberMethod cmSelect = new CodeMemberMethod(); cmSelect.Attributes = MemberAttributes.Public; cmSelect.ReturnType = new CodeTypeReference("System.Data.DataSet"); String cp_name = "ssp_" + table.Name; String PocoTypeName = table.Name; String FullPocoTypeName = PocoTypeName; CodeParameterDeclarationExpression cpdePoco = new CodeParameterDeclarationExpression(); cpdePoco.Name = "query"; cpdePoco.Type = new CodeTypeReference(table.Name); cpdePoco.Direction = FieldDirection.In; cmSelect.Parameters.Add(cpdePoco); cmSelect.Attributes = MemberAttributes.Public; cmSelect.Name = "Select"; cmSelect.Statements.Add(new CodeSnippetExpression("this.Access.CreateProcedureCommand(\"" + cp_name + "\")")); foreach (Column c in table.Columns) { MemberGraph mGraph = new MemberGraph(c); String DotNetTypeName = TypeConvertor.ToNetType(c.DataType.SqlDataType).ToString(); System.CodeDom.CodeConditionStatement ccsField = new CodeConditionStatement(); if (mGraph.IsNullable) { ccsField.Condition = new CodeSnippetExpression("query." + mGraph.PropertyName() + ".HasValue"); ccsField.TrueStatements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.PropertyName() + "\",query." + mGraph.PropertyName() + ".Value, ParameterDirection.Input)")); ccsField.FalseStatements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.PropertyName() + "\", null , ParameterDirection.Input)")); } else { ccsField.Condition = new CodeSnippetExpression("query." + mGraph.PropertyName() + " == null"); ccsField.TrueStatements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.PropertyName() + "\", null , ParameterDirection.Input)")); ccsField.FalseStatements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.PropertyName() + "\",query." + mGraph.PropertyName() + ", ParameterDirection.Input)")); } cmSelect.Statements.Add(ccsField); } cmSelect.Statements.Add(new CodeSnippetExpression("return this.Access.ExecuteDataSet()")); cmSelect.Comments.Add(new CodeCommentStatement("Select by Object [Implements Query By Example], returns DataSet")); return cmSelect; }
/// <summary> /// Insert Query Method /// </summary> /// <param name="table"></param> /// <returns></returns> private CodeMemberMethod BuildInsert(TableViewTableTypeBase table) { CodeMemberMethod cmInsert = new CodeMemberMethod(); cmInsert.Name = "Insert"; String cp_name = "cp_" + table.Name; cmInsert.Attributes = MemberAttributes.Public; cmInsert.ReturnType = new CodeTypeReference("System.Int32"); foreach (Column c in table.Columns) { MemberGraph mGraph = new MemberGraph(c); if (mGraph.IsReadOnly) { // nothing yet } else { cmInsert.Parameters.Add(mGraph.GetParameter()); } } cmInsert.Statements.Add(new CodeSnippetExpression("this.Access.CreateProcedureCommand(\"ProcedureName\")".Replace("ProcedureName", cp_name))); cmInsert.Statements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"Operation\", 5, ParameterDirection.Input)")); foreach (Column c in table.Columns) { MemberGraph mGraph = new MemberGraph(c); if (mGraph.IsReadOnly) { // nothing yet } else { cmInsert.Statements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.PropertyName() + "\", " + mGraph.ParameterName() + " , ParameterDirection.Input)")); } } cmInsert.Statements.Add(new CodeSnippetExpression("return this.Access.ExecuteNonQuery()")); cmInsert.Comments.Add(new CodeCommentStatement("Inserts a record")); return(cmInsert); }
public CodeTypeDeclaration BuildPoco(View view) { CodeTypeDeclaration ctd = new CodeTypeDeclaration(); ConstructorGraph ctorGraph = new ConstructorGraph(); ctd.Name = view.Name; ctd.TypeAttributes = System.Reflection.TypeAttributes.Public; ctd.Attributes = MemberAttributes.Public; ctd.IsPartial = true; // Members foreach (Column c in view.Columns) { MemberGraph mGraph = new MemberGraph(c); ctd.Members.Add(mGraph.GetField()); ctd.Members.Add(mGraph.GetProperty()); } // View only Gets One Constructor ctd.Members.Add(ctorGraph.GraphConstructors(view)[0]); ctd.Members.AddRange(AddMethods(view)); return ctd; }
private CodeMemberMethod BuildPocoDelete(TableViewTableTypeBase table) { CodeMemberMethod cmDelete = new CodeMemberMethod(); cmDelete.Attributes = MemberAttributes.Public; cmDelete.Name = "Delete"; String cp_name = "cp_" + table.Name; cmDelete.Parameters.Add(this.PocoQueryParameter(table.Name)); cmDelete.ReturnType = new CodeTypeReference("System.Int32"); cmDelete.Statements.Add(new CodeSnippetExpression("this.Access.CreateProcedureCommand(\"ProcedureName\")".Replace("ProcedureName", cp_name))); cmDelete.Statements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"Operation\", 6, ParameterDirection.Input)")); foreach (Column c in table.Columns) { if (c.InPrimaryKey) { MemberGraph mGraph = new MemberGraph(c); if (mGraph.IsNullable) { cmDelete.Statements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.PropertyName() + "\", query." + mGraph.PropertyName() + ".Value, ParameterDirection.Input)")); } else { cmDelete.Statements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.PropertyName() + "\", query." + mGraph.PropertyName() + ", ParameterDirection.Input)")); } } } cmDelete.Statements.Add(new CodeSnippetExpression("var value = this.Access.ExecuteNonQuery()")); cmDelete.Statements.Add(new CodeSnippetExpression("return value")); cmDelete.Comments.Add(new CodeCommentStatement("Delete's a record")); return cmDelete; }
/// <summary> /// Update Query Method /// </summary> /// <param name="table"></param> /// <returns></returns> private CodeMemberMethod BuildUpdate(TableViewTableTypeBase table) { CodeMemberMethod cmUpdate = new CodeMemberMethod(); cmUpdate.Attributes = MemberAttributes.Public; cmUpdate.Name = "Update"; String cp_name = "cp_" + table.Name; foreach (Column c in table.Columns) { MemberGraph mGraph = new MemberGraph(c); if (mGraph.IsReadOnly) { // nothing yet } else { cmUpdate.Parameters.Add(mGraph.GetParameter()); } } cmUpdate.Statements.Add(new CodeSnippetExpression("this.Access.CreateProcedureCommand(\"ProcedureName\")".Replace("ProcedureName", cp_name))); cmUpdate.Statements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"Operation\", 4, ParameterDirection.Input)")); foreach (Column c in table.Columns) { MemberGraph mGraph = new MemberGraph(c); if (mGraph.IsReadOnly) { // nothing yet } else { cmUpdate.Statements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.PropertyName() + "\", " + mGraph.ParameterName() + ", ParameterDirection.Input)")); } } cmUpdate.Statements.Add(new CodeSnippetExpression("var value = this.Access.ExecuteNonQuery()")); cmUpdate.Statements.Add(new CodeSnippetExpression("return value")); cmUpdate.ReturnType = new CodeTypeReference("System.Int32"); cmUpdate.Comments.Add(new CodeCommentStatement("Updates a Record")); return cmUpdate; }
/// <summary> /// Select One Query Method /// </summary> /// <param name="table"></param> /// <returns></returns> private CodeMemberMethod BuildSelect(TableViewTableTypeBase table) { CodeMemberMethod cmSelect = new CodeMemberMethod(); String cp_name = "cp_" + table.Name; cmSelect.Attributes = MemberAttributes.Public; cmSelect.Name = "Select"; cmSelect.Statements.Add(new CodeSnippetExpression("this.Access.CreateProcedureCommand(\"ProcedureName\")".Replace("ProcedureName",cp_name))); cmSelect.Statements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"Operation\", 1, ParameterDirection.Input)")); cmSelect.Comments.Add(new CodeCommentStatement("Selects One By Primary Key, returns a Data Set")); foreach (Column c in table.Columns) { if (c.InPrimaryKey) { MemberGraph mGraph = new MemberGraph(c); cmSelect.Parameters.Add(mGraph.GetParameter()); cmSelect.Statements.Add(new CodeSnippetExpression("this.Access.AddParameter(\"" + mGraph.Name + "\", " + mGraph.ParameterName() + ", ParameterDirection.Input)")); } } cmSelect.Statements.Add(new CodeSnippetExpression("var value = this.Access.ExecuteDataSet()")); cmSelect.Statements.Add(new CodeSnippetExpression("return value")); cmSelect.ReturnType = new CodeTypeReference("System.Data.DataSet"); return cmSelect; }
public CodeTypeDeclaration BuildPoco(Table table) { CodeTypeDeclaration ctd = new CodeTypeDeclaration(); ConstructorGraph ctorGraph = new ConstructorGraph(); ctd.Name = table.Name; ctd.TypeAttributes = System.Reflection.TypeAttributes.Public; ctd.Attributes = MemberAttributes.Public; ctd.IsPartial = true; // Members foreach (Column c in table.Columns) { MemberGraph mGraph = new MemberGraph(c); ctd.Members.Add(mGraph.GetField()); ctd.Members.Add(mGraph.GetProperty()); } foreach (CodeConstructor cc in ctorGraph.GraphConstructors(table)) { ctd.Members.Add(cc); } ctd.Members.AddRange(AddMethods(table)); return ctd; }
private MemberGraph CreateGraph(IEnumerable<TypeViewModel> typeViewModels) { var graph = new MemberGraph(true); var types = typeViewModels.Select(vm => vm.TypeInfo).ToArray(); foreach (var typeViewModel in typeViewModels) { var type = typeViewModel.TypeInfo; var methods = type.Methods.Where(m => !m.Name.StartsWith("<")).Concat(type.Accessors); if (!typeViewModel.ShowInternals) { methods = methods.Where(m => m.IsVisibleOutside()); } if (!ShowStaticConstructors) { methods = methods.Where(m => m.Name != ".cctor"); } foreach (var method in methods) { var mvm = GetViewModelForMethod(method); if (!graph.ContainsVertex(mvm)) { graph.AddVertex(mvm); } var usedMethodsRaw = Helper.GetUsedMethods(method.MemberReference).ToArray(); var usedMethods = FixDeclaringTypes(usedMethodsRaw, types) .Where(m => typeViewModels.Any(t => (m.IsVisibleOutside() || t.ShowInternals)) && !m.Name.StartsWith("<")) .ToArray(); foreach (var usedMethod in usedMethods) { var vm = GetViewModelForMethod(usedMethod); if (!graph.ContainsVertex(vm)) { graph.AddVertex(vm); } graph.AddEdge(new Edge<MemberViewModel>(mvm, vm)); } var usedFieldsRaw = Helper.GetUsedFields(method.MemberReference).ToArray(); var usedFields = FixDeclaringTypes(usedFieldsRaw, types) .Where(m => typeViewModels.Any( tvm => (m.IsVisibleOutside() || tvm.ShowInternals)) && !m.Name.StartsWith("CS$") && !m.Name.EndsWith("k__BackingField")) .ToArray(); foreach (var usedField in usedFields) { var vm = GetViewModelForField(usedField); if (!graph.ContainsVertex(vm)) { graph.AddVertex(vm); } graph.AddEdge(new Edge<MemberViewModel>(mvm, vm)); } } } if (!ShowUnconnectedVertices) { graph.RemoveVertexIf(v => graph.Degree(v) == 0); } return graph; }
private CodeMemberMethod BuildFillMethod(TableViewTableTypeBase table) { // Accepts a DataRow and Returns a Poco of this type. CodeMemberMethod cmmFill = new CodeMemberMethod(); cmmFill.Name = "Fill"; cmmFill.Attributes = MemberAttributes.Private; cmmFill.ReturnType = new CodeTypeReference(table.Name); CodeParameterDeclarationExpression cpdeDataRow = new CodeParameterDeclarationExpression(); cpdeDataRow.Name = "row"; cpdeDataRow.Type = new CodeTypeReference("System.Data.DataRow"); cpdeDataRow.Direction = FieldDirection.In; cmmFill.Parameters.Add(cpdeDataRow); var init_Express = new CodeSnippetExpression("new " + table.Name + "()"); var obj = new CodeVariableDeclarationStatement(new CodeTypeReference(table.Name), "obj", init_Express); cmmFill.Statements.Add(obj); foreach (Column c in table.Columns) { String DotNetTypeName = TypeConvertor.ToNetType(c.DataType.SqlDataType).ToString(); MemberGraph mGraph = new MemberGraph(c); System.CodeDom.CodeConditionStatement ccsField = new CodeConditionStatement(); ccsField.Condition = new CodeSnippetExpression("(row[\"" + c.Name + "\"] != System.DBNull.Value)"); //if (!(mGraph.IsReadOnly)) //{ // If Field is nullable Type if (mGraph.IsNullable) { if (mGraph.TypeName() == "String") { ccsField.TrueStatements.Add(new CodeSnippetExpression("obj." + mGraph.PropertyName() + " = row[\"" + c.Name + "\"].ToString()")); } else { ccsField.TrueStatements.Add(new CodeSnippetExpression("obj." + mGraph.PropertyName() + " = ((" + mGraph.TypeName() + ")(row[\"" + c.Name + "\"]))")); } } else { if (mGraph.TypeName() == "String") { ccsField.TrueStatements.Add(new CodeSnippetExpression("obj." + mGraph.PropertyName() + " = row[\"" + c.Name + "\"].ToString()")); } else { ccsField.TrueStatements.Add(new CodeSnippetExpression("obj." + mGraph.PropertyName() + " = ((" + mGraph.TypeName() + ")(row[\"" + c.Name + "\"]))")); } } cmmFill.Statements.Add(ccsField); //} } cmmFill.Statements.Add(new CodeSnippetExpression("return obj")); cmmFill.Comments.Add(new CodeCommentStatement("Returns a Hydrated POCO")); return cmmFill; }