최근 응용 프로그램에서 나는 Document
엔티티가 있으며이 문서는 사용자로부터 다른 사용자를 참조 할 수 있으며 각 사용자 그룹은 DocumentStation
입니다. 이러한 DocumentStationHistory
표에 기록 참조합니다 엔티티에 linq를 사용하여 그룹화
지금, 나는 모든 마지막 문서가 Dictionary
-DocumentStationHistory
테이블에 LOGES이 (documentId
에 의해 그룹) 최초의 EF 코드를 사용하는 것을 의미 나열합니다. 그래서 난이 방법을 썼다는 사전을 반환
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
입니다. 내 실수는 어디 갔지? 순서에 대한
문제가 해결되어 그룹이 생성되었지만 탐색 속성이 아직 null입니다. – Masoud
@Masoud : 별도의 질문으로 분리 할 가치가 있습니다. 가능한 경우 그룹화 부분을 제거하는 것이 이상적입니다. (* 그룹화하지 않으면 탐색 속성을 유지합니까?) –
예, 그룹화하지 않으면 탐색 속성이 유지됩니다. – Masoud