D'abord, je vais décrire un peu ma structure de table. Il existe deux tables, FormField et Field.Comment résoudre ce problème distinct dans Linq?
Un champ peut être lié à plusieurs champs de formulaire, mais un champ de formulaire ne peut contenir qu'un seul champ.
J'ai donc cette requête LINQ:
var fields = from f in Data.Field.All()
join ff in formfields on f.Field_rid equals ff.Field_rid
select new
{
FormField = ff,
Field = f
};
Maintenant, je besoin de mettre une distincte quelque part là-dedans, mais je ne peux pas savoir où. Fondamentalement, je ne veux pas que le même champ me soit retourné plus d'une fois (donc je ne reçois jamais de champ en double). Où devrais-je utiliser la fonction distincte?
qui est la solution que je cherchais. Et FirstOrDefault est bien car il ne devrait jamais (en théorie) plus d'un champ lié à chaque champ de formulaire. – Earlz
Si c'est le cas, vous pouvez le limiter en remplaçant 'FirstOrDefault()' par 'Single()' pour tester si votre théorie est toujours pertinente. – Snowbear