J'ai une question de Linq. Je ne suis pas génial avec Linq. J'ai deux classes:
SELECT DISTINCT s.StateID FROM Person p JOIN States s ON (p.StateID = s.StateID)
3 Réponses :
comme ceci: Notez que vous devrez mettre en œuvre correctement Si vous voulez simplement que vous souhaitez simplement implémenter les identifiants, vous n'avez pas besoin d'implémenter égale code> et gethascode code> em> in La classe État code>. (Sauf si vous utilisez LINQ-TO-SQL ou des entités) P> égale code> / gethashcode code>; Vous pouvez simplement appeler p>
Linq distinct est ennuyeux, vous devez implémenter l'interface IéqualityComparer sur la classe que vous souhaitez distinct (), puis la façon dont vous avez votre sélection distincte que vous faites référence aurait:
public class State : IEqualityComparer<State>
{
int StateID {get;set;}
string StateName {get;set;}
public bool Equals(State x, State y) { return x.StateID == y.StateID && x.StateName == y.StateName; }
public int GetHashCode(State obj) { return obj.StateId; }
}
Merci d'avoir répondu, la clé que vous avez déjà indiquée est de créer votre propre implémentation.
Essayez ceci:
var stateList = (from s in context.States
join p in context.Persons on s.StateId equals p.StateId
select s).Distinct();