2

エラーが発生した行が実際にはDistinct()をまったく使用していないため、このエラーメッセージで問題が発生しています。それはIEqualityComparer私が実装したものと関係があるのだろうか?

この行のビュー、特に次のビューでサポートされていない例外が作成されます.Count()

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

IEqualityComparerクラスは次のとおりです。

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();
    }
}
4

2 に答える 2

6

問題を解決する.ToList().Distinct()代わりに呼び出していることがわかりました。.Distinct()

ここで答えを見つけました

于 2012-06-20T10:50:13.603 に答える
3

を使用していない可能性がありますがDistinct()、によって表される列挙型のチェーンのどこかに、基になるプロバイダーでサポートされていない呼び出しを使用してModel.FeaturedOffersいる式があると思います-たとえば、Linq to SQL または Entity Framework.IQueryableDistinct

たとえば、Entity Framework でテーブルをクエリし、独自の比較子を渡す場合、EF が SQL または eSQL で比較子を再実装する方法がないため、それはほとんど確実に機能しません。

于 2012-06-20T10:48:42.727 に答える