[Linq] En faire plus qu’avec un simple FirstOrDefault()

Publié le 27 octobre 2008 par Jeremy.jeanson

Avec Linq on se retrouve très souvent à utiliser FirstOrDefault puis à faire plusieurs tests et au final par créer une entité vierge par défault. Ce complètement pourrait être considéré comme étant un peu “anti linq” car on effectue des boucles et des tests après une requete linq… C’est une sorte de retour en arrière.

Il existe pourtant une méthode fort sympathique : DefaultIfEmpty(). Celle-si permet dans le cas ou la requête ne donne rien de créer une entité par défaut. Donc conjointement à first on obtient par exemple:

dc.Entite
.Where(…)
.DefaultIfEmpty(new Entite() { propriete1="...", propriete2="...", ... })
.First();