3

編集:

最初にEFコードを使用してアプリケーションを開発しています。次を返すメソッドがありDictionary<int,T>ます。

public Dictionary<int, DocumentStationHistory> GetLastDocumentStationHistoryListOfDocuments(string criteria)
{
        Dictionary<int, DocumentStationHistory> result = new Dictionary<int, DocumentStationHistory>();
        using (IUnitOfWork uow = new MyContext())
        {
            DocumentStationHistoryRepository repository = new DocumentStationHistoryRepository(uow);
            result = repository.All().
                Include(x => x.DocumentStation).
                Where(criteria,new object[]{}).
                OrderBy(d=>d.DocumentId).
                OrderBy(d=>d.DocumentStationHistoryId).
                GroupBy(g => (int)g.DocumentId).
                ToDictionary(g => (int)g.Key, g => g.LastOrDefault());
            return result;
        }
}

また、それは私のエンティティ間の関係です:

ここに画像の説明を入力

しかし、このメソッドを実行するとDocumentStation、結果に含まれる property( ) は になりますnull。私の間違いはどこですか?

更新しました:

を削除すると.GroupBy()、ナビゲーション プロパティが保持されることをテストしました。 では、どうすればこの問題を解決できますか?

4

1 に答える 1

0

この問題もありました。グループ化の前に .ToList() を実行して解決しました。したがって、次のようになります。

result = repository.All().
         Include(x => x.DocumentStation).
         Where(criteria,new object[]{}).
         OrderBy(d=>d.DocumentId).
         OrderBy(d=>d.DocumentStationHistoryId).
         ToList().
         GroupBy(g => (int)g.DocumentId).
         ToDictionary(g => (int)g.Key, g => g.LastOrDefault());
于 2014-10-05T18:32:12.203 に答える