public void Delete(object obj) { if (obj == null) { return; } var deleteSql = ClassConfigContainer.FindDeleteSql1(obj.GetType()); try { Command.Start(); var propertyParameters = ParametersCreator.CreatePropertyParameters(ParameterPrefix, obj, ref deleteSql); var sqlParameters = ConvertPropertyParametersToSqlParameters(propertyParameters); var original = GetOriginal(obj); ExecuteNonQuery(deleteSql, sqlParameters); var businessBase = obj as BusinessBase; if (businessBase != null) { businessBase.MarkAsDeleted(); } if (Shared.IsAuditable(obj)) { string updateSql = ClassConfigContainer.FindUpdateSql1(obj.GetType()); propertyParameters = ParametersCreator.CreatePropertyParameters(ParameterPrefix, original, ref updateSql); string auditText = Auditor.AuditDelete(original, propertyParameters); InsertAuditRecord(original, DbOperation.Delete, auditText); } NullifyIdProperty(obj); } catch (Exception ex) { throw CreateEasylinkException(deleteSql, ex); } }