/// <summary> /// 添加 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool Insert(T model, string incrementFieldName = null, string sameValuePropertyName = null) { if (!string.IsNullOrEmpty(sameValuePropertyName)) { PropertyInfo property = model.GetType().GetProperty(sameValuePropertyName); string check = new ConditionHelper().And(sameValuePropertyName, property.GetValue(model, null), CompareType.Equal).ToString(); DynamicParameters p = new DynamicParameters(); p.Add($"@{sameValuePropertyName}", property.GetValue(model, null)); if (_provider.GetItem <T>(check, p) != null) { throw new SameValueException(); } } List <string> fieldsBuilder = new List <string>(); List <string> valuesBuilder = new List <string>(); if (string.IsNullOrEmpty(incrementFieldName)) { Type type = typeof(T); PropertyInfo[] propertys = type.GetProperties(); foreach (var property in propertys) { fieldsBuilder.Add($"{property.Name}"); valuesBuilder.Add($"@{property.Name}"); } } else { Type type = typeof(T); PropertyInfo[] propertys = type.GetProperties(); foreach (var property in propertys) { if (property.Name != incrementFieldName) { fieldsBuilder.Add($"{property.Name}"); valuesBuilder.Add($"@{property.Name}"); } } } return(_provider.Insert(string.Join(",", fieldsBuilder), string.Join(",", valuesBuilder), model)); }