public virtual List<DbCommand> BuildCommands(params object[] things) { var commands = new List<DbCommand>(); foreach (var item in things) { if (HasPrimaryKey(item)) { commands.Add(CreateUpdateCommand(item, GetPrimaryKey(item))); } else { commands.Add(CreateInsertCommand(item)); } } return commands; }