【发布时间】:2019-12-18 16:41:01
【问题描述】:
在这段代码中:
var dbrepayments = _context.Repayments.Include("Loan").Include("Loan.Borrower").Include("Loan.LoanProduct")
.Where(c => c.PaidOn == null && c.DateOfRepayment <= today)
.GroupBy(c => c.Loan.Id, (key, g) => g.OrderByDescending(c => c.Id).FirstOrDefault())
.OrderBy(c => c.DateOfRepayment);
_context 是 ApplicationDbContext 类型,我用于使用 Code-First 方法从数据库中获取结果。
问题是当我尝试遍历dbrepayments 并获取Loan、Loan.Borrower 和Loan.LoanProduct 的值时,它们显示为null。但是当我删除GroupBy 时,这些对象会正确返回。
【问题讨论】:
-
您能否展示迭代代码以及您如何尝试获取
Loan等 -
听起来
GroupBy正在本地评估,因此将数据库结果投影到新类型,这意味着您丢失了包含的类型。检查控制台输出是否有任何 LINQ 翻译警告。 -
@Matt 不是任何复杂的代码。即使我喜欢这个
var x = dbrepayments.FirstOrDefault().Loan,它也会返回null。 -
@KieranDevlin 我在输出窗口中没有看到任何警告。
标签: c# .net asp.net-mvc entity-framework code-first