/// <summary> /// 将DataReader转换为List方法 /// </summary> /// <param name="fields"></param> /// <param name="param"></param> /// <returns></returns> private string GetConvertDataReaderToListMethod(List <Model.Fields> fields, Model.CodeCreate param) { //自增列 var Identitys = fields.Where(p => p.IsIdentity); var NotIdeneitys = fields.Where(p => !p.IsIdentity); bool HasIdentity = Identitys.Count() > 0; //主键 var Primarykeys = fields.Where(p => p.IsPrimaryKey); var NotPrimarykeys = fields.Where(p => !p.IsPrimaryKey); bool HasPrimarykey = Primarykeys.Count() > 0; StringBuilder data = new StringBuilder(); data.Append("\t\t/// <summary>\r\n"); data.Append("\t\t/// 将DataRedar转换为List\r\n"); data.Append("\t\t/// </summary>\r\n"); data.Append("\t\tprivate List<" + param.NameSpace + (string.IsNullOrEmpty(param.NameSpace) ? "" : ".") + param.CNSC.Model + (string.IsNullOrEmpty(param.NameSpace1) ? "" : "." + param.NameSpace1) + "." + param.ClassName + "> DataReaderToList(" + createInstance.GetDataReaderType() + " dataReader)\r\n"); data.Append("\t\t{\r\n"); data.Append("\t\t\tList<" + param.NameSpace + (string.IsNullOrEmpty(param.NameSpace) ? "" : ".") + param.CNSC.Model + (string.IsNullOrEmpty(param.NameSpace1) ? "" : "." + param.NameSpace1) + "." + param.ClassName + "> List = new List<" + param.NameSpace + (string.IsNullOrEmpty(param.NameSpace) ? "" : ".") + param.CNSC.Model + (string.IsNullOrEmpty(param.NameSpace1) ? "" : "." + param.NameSpace1) + "." + param.ClassName + ">();\r\n"); data.Append("\t\t\t" + param.NameSpace + (string.IsNullOrEmpty(param.NameSpace) ? "" : ".") + param.CNSC.Model + (string.IsNullOrEmpty(param.NameSpace1) ? "" : "." + param.NameSpace1) + "." + param.ClassName + " model = null;\r\n"); data.Append("\t\t\twhile(dataReader.Read())\r\n"); data.Append("\t\t\t{\r\n"); data.Append("\t\t\t\tmodel = new " + param.NameSpace + (string.IsNullOrEmpty(param.NameSpace) ? "" : ".") + param.CNSC.Model + (string.IsNullOrEmpty(param.NameSpace1) ? "" : "." + param.NameSpace1) + "." + param.ClassName + "();\r\n"); int i = 0; string nullString = string.Empty; foreach (var field in fields) { nullString = field.IsNull ? "\t\t\t\tif (!dataReader.IsDBNull(" + i + "))\r\n\t\t\t\t\t" : "\t\t\t\t"; switch (field.DotNetType.Replace("?", "").ToLower()) { case "string": data.Append(nullString + "model." + field.Name + " = dataReader.GetString(" + i.ToString() + ");\r\n"); break; case "guid": data.Append(nullString + "model." + field.Name + " = dataReader.GetGuid(" + i.ToString() + ");\r\n"); break; case "long": data.Append(nullString + "model." + field.Name + " = dataReader.GetInt64(" + i.ToString() + ");\r\n"); break; case "int": data.Append(nullString + "model." + field.Name + " = dataReader.GetInt32(" + i.ToString() + ");\r\n"); break; case "short": data.Append(nullString + "model." + field.Name + " = dataReader.GetInt16(" + i.ToString() + ");\r\n"); break; case "byte": data.Append(nullString + "model." + field.Name + " = dataReader.GetInt16(" + i.ToString() + ");\r\n"); break; case "decimal": data.Append(nullString + "model." + field.Name + " = dataReader.GetDecimal(" + i.ToString() + ");\r\n"); break; case "float": data.Append(nullString + "\tmodel." + field.Name + " = dataReader.GetFloat(" + i.ToString() + ");\r\n"); break; case "double": data.Append(nullString + "\tmodel." + field.Name + " = dataReader.GetDouble(" + i.ToString() + ");\r\n"); break; case "datetime": data.Append(nullString + "model." + field.Name + " = dataReader.GetDateTime(" + i.ToString() + ");\r\n"); break; case "bool": data.Append(nullString + "model." + field.Name + " = dataReader.GetBoolean(" + i.ToString() + ");\r\n"); break; } i++; } data.Append("\t\t\t\tList.Add(model);\r\n"); data.Append("\t\t\t}\r\n"); data.Append("\t\t\treturn List;\r\n"); data.Append("\t\t}\r\n"); return(data.ToString()); }