这是我的疑问:
RestTemplate restTemplate = new RestTemplate();
restTemplate.setErrorHandler(new MyResponseErrorHandler());
// now RestTemplate's behaviour for error status codes is customized
当我在 var units = _context.Units.Include(m =>
m.Modules.Select(t => t.Tests.Select(q => q.Questions)))
.ToList();
集合的末尾添加.Where()
时,我在运行时会收到此异常:
System.ArgumentException:'包含路径表达式必须引用a 在类型上定义的导航属性。使用虚线路径 引用导航属性和集合的Select运算符 导航属性。 参数名称:路径'
如何在不收到错误的情况下过滤t.Tests
集合?
只知道我想在客户端加载所有Units / Module / Tests.filter / Questions.filter。
我的模特:
EF模型:
t.Tests
为什么这不重复!
它不仅具有1到N的过滤问题,而且还具有N到M的关系,这对于已经解决的解决方案中显示的linq查询样式来说是不容易做到的。
答案 0 :(得分:1)
Include
在您要过滤子项的情况下不起作用。改为使用匿名类:
var unitsWithQuestions = _context.Units.Select(m => new {
Unit = m
, TestQuestions = m.Modules.Select(t =>
t.Tests.Select(q => q.Questions)
).ToList()
}).ToList();
现在您可以迭代unitsWithQuestions
,并通过引用匿名类的Unit
和TestQuestions
成员来检索相关部分。