gpt4 book ai didi

c# - 为什么当我在 LINQ to Entities 查询中使用 GroupBy() 时,结果中的导航属性为空?

转载 作者:行者123 更新时间:2023-11-30 18:33:31 27 4
gpt4 key购买 nike

已编辑:

我首先使用 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;
}
}

这也是我的实体之间的关系:

enter image description here

但是当这个方法运行时,结果中包含的属性(DocumentStation)是null .我的错误在哪里?

更新:

我测试过如果删除 .GroupBy() ,它保留导航属性!那么我该如何解决这个问题呢?

最佳答案

也有这个问题。我通过在 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());

关于c# - 为什么当我在 LINQ to Entities 查询中使用 GroupBy() 时,结果中的导航属性为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17522598/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com