4 votes

Lecture d'une seule ligne de Linq-to-SQL

Je veux refactoriser certains modules C# qui lisent des données à partir de SQL Server 2008 via Linq-to-SQL. Ces procédures stockées récupèrent au maximum une ligne, car je soumets le PK complet comme paramètre. Apparemment, Linq-to-SQL n'est pas conscient qu'au maximum une ligne peut être retournée. En conséquence, le code suivant s'exécute pour obtenir une valeur ou lancer une exception :

    var results = context.MyProcName(myParameter);
    foreach (var result in results)
    {
        return result.THeColumnINeed;
    }
    throw new Exception(string.Format("Value not found for parameter {0}", myParameter));

Ce code fait l'affaire, mais il est plutôt moche. Comment puis-je l'améliorer ?

11voto

Marc Gravell Points 482669
return context.MyProcName(myParameter).Single().THeColumnINeed;

1voto

Wolfy Points 894

Essayez ça :

return context.MyProcName(myParameter).First();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X