我们目前遇到了 Entity Framework 的问题,我们正在从数据库中抓取一些具有可以为 null 的子元素的东西,并尝试包含孙元素。
例子
var workItems = _context.WorkItems
.Include(x => x.Contract)
.Include(x => x.Contract.ContractAccount)
如果 contract 为 null(这是允许的),那么当它尝试包含 ContractAccount 时由于 Contract 为 null 而失败。
到目前为止,我们已经尝试对孙子中的 child 进行空检查。
即
Contract ?? null : ContractAccount
我们也尝试过使用
DefaultIfEmpty(new Contract())
这似乎也是不允许的。
我们需要返回完整的 WorkItem 及其契约(Contract)/契约(Contract)帐户(如果它有一个返回给用户)但如果没有契约(Contract)那么它应该只返回 WorkItem。
感谢任何帮助。
使用ThenInclude
:
var workItems = _context.WorkItems
.Include(x => x.Contract)
.ThenInclude(contract => contract.ContractAccount);
我是一名优秀的程序员,十分优秀!