0
在我最近的应用程序中,我有一个Document
实体,并且此文档可以将用户引用到另一个用户,每个用户组也有DocumentStation
;这是指记录在DocumentStationHistory
表: 使用LINQ分组返回非正确的结果
现在,我要列出所有最后一份文件指的是包厢在DocumentStationHistory
表到Dictionary
使用EF代码第一个(组由documentId
)。 所以我写了这些方法:
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
导航属性,在结果是null
。 我的错误在哪里?对于排序
谢谢,小组按问题解决,但导航属性为空。 – Masoud
@Masoud:可能值得把它分成单独的问题......如果可以的话,理想情况下已经移除了分组部分。 (如果你*不*组,它是否保留导航属性?) –
是的,如果我不分组,它保持导航属性。 – Masoud