我正在尝试在我的存储库中构建一个基本级GetAll()
方法,以确保我的存储库中的其他方法的所有数据都可用并且正确。
由于现有的数据库设计,它相当复杂,但它围绕着包含指示当前凭证是否可以看到group
或driver
的集合。
不幸的是,它现在抛出一个错误:
包含路径表达式必须引用在类型
上定义的导航属性
这是代码
return groups
.Include(g => g.GroupDriverDicts)
.Include(g => g.GroupDriverDicts.Select(d => d.Driver))
.Include(g => g.GroupDriverDicts
.Select(d => d.Driver
.DriverCredentialDicts
.Select(dcd => dcd.CredentialId == this.AccountId)))
答案 0 :(得分:0)
您无法像这样过滤包含的数据。您必须加载所有 DriverCredentialDicts 。您可以尝试以下方式:
return groups
.Include(g => g.GroupDriverDicts.Select(d => d.Driver.DriverCredentialDicts))
.Where(g => g.GroupDriverDicts.Any(gdd => gdd.Driver.DriverCredentialDicts
.Any(dcd => dcd.CredentialId == this.AccountId)));
它将为您提供所有组,其中任何DriverCredentialDicts 的id等于this.AccountId
。