0

ドロップダウンリストにアイテムを追加し、ヒアリング日、次に時間で並べ替えるこれらのコード行があります。さらに一歩進んで、アイテムの「タイプ」または説明をアルファベット順に並べ替えたいと思います。

これは私のコントローラーの私のコードです:

public void AddHearingsToViewModel(CourtActivityViewModel viewModel, IQueryable<Hearing> hearings)
    {
        if (viewModel.HearingEntryId == Guid.Empty)
            viewModel.HearingEntryId = hearings.OrderByDescending(h => h.HearingDate).ThenByDescending(d=>d.HearingDate).FirstOrDefault().HearingEntryId;
        viewModel.Hearings = hearings.ToSelectList("HearingEntryId", "CourtActivitySelection", viewModel.HearingEntryId.ToString());
    }

私の..Domain.Entities.Hearing

public partial class Hearing
{

    public string CourtActivitySelection
    {
        get { return string.Format(@"{0:d} - {0:t} - {1} ", HearingDate, HearingType.Description); }
    }

    public override string ToString()
    {
        return string.Format(@"{1} on {0:d} @ {0:t}", HearingDate, HearingType.Description);
    }
}

public partial class HearingEntry
{

    public override string ToString()
    {
        return string.Format(@"{1} on {0:d} @ {0:t}", HearingDate, HearingType.Description);
    }

}

私は試した:

viewModel.HearingEntryId = hearings.OrderByDescending(h => h.HearingDate).ThenByDescending(d=>d.HearingDate).OrderBy(t=>t.HearingType).FirstOrDefault().HearingEntryId;

正確なエラーは次のとおりです。

タイプ'Kids.Domain.Entities.HearingType'で注文することはできません。説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとそれがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。

例外の詳細:System.InvalidOperationException:タイプ'Kids.Domain.Entities.HearingType'で並べ替えることはできません。

そして、赤い線は私が追加した線です.ThenBy(t=>t.HearingType)

4

1 に答える 1

1

あなたはIComparableHearingTypeを実装していないクラスのようです。このインターフェースをHearingTypeであるタイプに実装する

public SomeClassThatHearingTypeIsAnInstanceOf : IComparable
{
}

またはコードをに変更します

.ThenBy(t=>t.HearingType.SomePropertyYouWantToSortBy)

あなたが遭遇するかもしれない唯一の問題(私はあなたのクラスがどのように移入されているかわからないので、それはそうかもしれないというHearingTypeことnullです。

于 2012-06-01T14:14:36.677 に答える