3

编辑:

我首先使用 EF 代码开发应用程序,我有一个返回 a 的方法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

也有这个问题。我通过在 group by 之前执行 .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 回答