/// <summary> /// 新增记录方法 /// </summary> /// <param name="fields"></param> /// <param name="param"></param> /// <returns></returns> private string GetAddMethod(List <Model.Fields> fields, Model.CodeCreate param) { //自增列 var Identitys = fields.Where(p => p.IsIdentity); var NotIdeneitys = fields.Where(p => !p.IsIdentity); bool HasIdentity = Identitys.Any(); //主键 var Primarykeys = fields.Where(p => p.IsPrimaryKey); var NotPrimarykeys = fields.Where(p => !p.IsPrimaryKey); bool HasPrimarykey = Primarykeys.Any(); StringBuilder data = new StringBuilder(); data.Append("\t\t/// <summary>\r\n"); data.Append("\t\t/// 添加记录\r\n"); data.Append("\t\t/// </summary>\r\n"); data.Append("\t\t/// <param name=\"model\">" + param.NameSpace + (string.IsNullOrEmpty(param.NameSpace) ? "" : ".") + param.CNSC.Model + (string.IsNullOrEmpty(param.NameSpace1) ? "" : "." + param.NameSpace1) + "." + param.ClassName + "实体类</param>\r\n"); data.Append("\t\t/// <returns>" + (HasIdentity ? "新增记录的ID" : "操作所影响的行数") + "</returns>\r\n"); data.Append("\t\tpublic " + (HasIdentity ? Identitys.First().DotNetType : "int") + " Add(" + param.NameSpace + (string.IsNullOrEmpty(param.NameSpace) ? "" : ".") + param.CNSC.Model + (string.IsNullOrEmpty(param.NameSpace1) ? "" : "." + param.NameSpace1) + "." + param.ClassName + " model)\r\n"); data.Append("\t\t{\r\n"); data.Append("\t\t\tstring sql = @\"INSERT INTO " + param.TableName); data.Append("\r\n\t\t\t\t("); foreach (var field in NotIdeneitys) { data.Append(field.Name); data.Append(field.Name != NotIdeneitys.Last().Name ? "," : ""); } data.Append(") \r\n"); data.Append("\t\t\t\tVALUES("); foreach (var field in NotIdeneitys) { data.Append(createInstance.GetParamsName(field.Name)); data.Append(field.Name != NotIdeneitys.Last().Name ? "," : ""); } data.Append(")" + (HasIdentity ? ";\r\n\t\t\t\tSELECT " + createInstance.GetIdentityMethod() + ";" : "") + "\";\r\n"); data.Append("\t\t\t" + createInstance.GetParamsType() + "[] parameters = new " + createInstance.GetParamsType() + "[]{\r\n"); foreach (var field in NotIdeneitys) { if (field.IsNull) { data.Append("\t\t\t\tmodel." + field.Name + " == null ? "); data.Append("new " + createInstance.GetParamsType() + "(\"" + createInstance.GetParamsName1(field.Name) + "\", " + field.DotNetSqlType + (field.Length != -1 ? ", " + field.Length.ToString() : ", -1") + ") { Value = DBNull.Value } : "); data.Append("new " + createInstance.GetParamsType() + "(\"" + createInstance.GetParamsName1(field.Name) + "\", " + field.DotNetSqlType + (field.Length != -1 ? ", " + field.Length.ToString() : ", -1") + ") { Value = model." + field.Name + " }"); } else { data.Append("\t\t\t\tnew " + createInstance.GetParamsType() + "(\"" + createInstance.GetParamsName1(field.Name) + "\", " + field.DotNetSqlType + (field.Length != -1 ? ", " + field.Length.ToString() : ", -1") + ")"); data.Append("{ Value = model." + field.Name + " }"); } data.Append(field.Name != NotIdeneitys.Last().Name ? "," : ""); data.Append("\r\n"); } data.Append("\t\t\t};\r\n"); //data.Append("\t\t\tDBHelper dbHelper = new DBHelper();\r\n"); if (HasIdentity) { data.Append("\t\t\t" + Identitys.First().DotNetType + " maxID;\r\n"); data.Append("\t\t\treturn " + Identitys.First().DotNetType + ".TryParse(dbHelper.ExecuteScalar(sql, parameters),out maxID) ? maxID : -1;\r\n"); } else { data.Append("\t\t\treturn dbHelper.Execute(sql, parameters);\r\n"); } data.Append("\t\t}\r\n"); return(data.ToString()); }