InvalidOperationException: Séquence contient plus d'un élément

J'ai le code suivant ci-dessous pour un programme d'épargne-salaire.
Le premier dictionnaire détient l'Id d'employés et de base correspondant paie, tenue dans une table de données de base.
Le dictionnaire second détient l'Id d'employés et de base correspondant paie tenue à un salaire de montage de la table utilisée pour le traitement.
Je veux mettre à jour le salaire de l'équipement de base de la paie pour chaque ID de l'employé qui n'ont pas de correspondance dans la table maître. (Les changements de salaire).

var OHEMDictionary = employees.OrderBy(es => es.empID)
                     .ToDictionary(od => od.empID,
                     od => od.salary);

var SalaryFitmentDictionary = salaryFitments
                              .Where(x => x.U_PD_Code.Trim().ToString() == "SYS001")
                              .OrderBy(es => es.U_Employee_ID)
                              .ToDictionary(od => od.U_Employee_ID,
                                            od => od.U_PD_Amount);

var difference = OHEMDictionary
                .Where(kv => SalaryFitmentDictionary[kv.Key] != kv.Value);

difference.ToList().ForEach(x =>
                    {
                        decimal salary = x.Value.Value;

                        var codeToUpdate = salaryFitments
                                        .Where(y => y.U_Employee_ID.Equals(x.Key))
                                        .Select(z => z.Code)
                                        .SingleOrDefault(); `**<---exception thrown here**`

                        var salaryFitment = salaryFitmentService
                                            .GetSalaryFitment(codeToUpdate);

                        if (salaryFitment != null)
                        {
                            //Save record
                            salaryFitmentService
                           .UpdateSalaryFitment(salaryFitment, salary.ToString());
                        }
                    });

Cependant, je reçois l'erreur 'Sequence contains more than one element'. Comment puis-je résoudre cette erreur?

Pensez-vous qu'un Employé peut avoir plusieurs Codes? Si non, SingleOrDefault pourrait vous ai montré et d'incohérence. Ensuite, vous devez corriger un bug qui a causé cela et rester avec elle SingleOrDefault au lieu de FirstOrDefault. SingleOrDefault est comme un système d'alarme.

OriginalL'auteur Kinyanjui Kamau | 2013-02-22