Question

I am having trouble with this error message as the line it errors on is not actually using Distinct() at all. I am wondering if it is something to do with the IEqualityComparer I've implemented?

It creates an unsupported exception in a view on this line, specifically on .Count():

tr style="display: @( Model.FeaturedOffers.Count() == 0 ? "" : "none" ) " id="none">

Here is the IEqualityComparer class:

public class RewardOfferEqualityComparer : IEqualityComparer<OfferOverviewViewModel>
{
    public bool Equals(OfferOverviewViewModel x, OfferOverviewViewModel y)
    {
        return Equals(x.OfferId, y.OfferId);
    }

    public int GetHashCode(OfferOverviewViewModel x)
    {
        return x.OfferId.GetHashCode();
    }
}
Was it helpful?

Solution

Found that calling .ToList().Distinct() instead of .Distinct() solved the problem.

Found answer here

OTHER TIPS

You might not be using Distinct(), but somehere in the chain of enumerables represented by Model.FeaturedOffers I'm guessing there's an IQueryable expression that's using a Distinct call that is not supported by the underlying provider - for example Linq to SQL or Entity Framework.

For example - if you are querying a Table in Entity Framework and passing your own comparer then that most certainly won't work - since there's no way for EF to re-implement the comparer in SQL or eSQL

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top