0

I am working in Entity Framework Model and i am writing an expression like this:

medication = objectContext.vClientMedication.Distinct().ToList(); What should I write in Distinct function to get the unique BrandName. BrandName is an attribute of vClientMedication.

Thank you.

enter image description here

asma
  • 2,795
  • 13
  • 60
  • 87
  • possible duplicate of [Linq Distinct on a particular Property](http://stackoverflow.com/questions/489258/linq-distinct-on-a-particular-property) – Bertrand Marron Aug 05 '11 at 09:07

2 Answers2

2
medication = objectContext.vClientMedication.Select(o => o.BrandName).Distinct().ToList();
Bas
  • 26,772
  • 8
  • 53
  • 86
1

you can use IComparer

 public class CustomEqualityComparer : IEqualityComparer<vClientMedication>
{
    #region IEqualityComparer Members

    public bool Equals(vClientMedication x, vClientMedication y)
    {
        if ((x.BrandName == y.BrandName))
            return true;
        else
            return false;
    }}

then write your query

medication = objectContext.vClientMedication.Distinct(new
CustomEqualityComparer()).ToList();
maniacneron
  • 424
  • 6
  • 19
  • Please see the updated question. I added an image of error getting after using ur code. – asma Aug 05 '11 at 09:20
  • Here is another error `'Pc.PrecisionCare2.DAL.Consumer.Medication.ConsumerMedicationDAO.CustomEqualityComparer' does not implement interface member 'System.Collections.Generic.IEqualityComparer.GetHashCode(Pc.PrecisionCare2.ModelTypes.vClientMedication)'` – asma Aug 08 '11 at 05:37
  • public int GetHashCode(vClientMedication obj) { return base.GetHashCode(); } add this function to your CustomEqualityComparer class – maniacneron Aug 08 '11 at 08:19