private void ReplaceCredentialInternal(User user, Credential credential) { // Find the credentials we're replacing, if any var creds = user.Credentials .Where(cred => cred.Type == credential.Type) .ToList(); foreach (var cred in creds) { user.Credentials.Remove(cred); CredentialRepository.DeleteOnCommit(cred); } user.Credentials.Add(credential); }