考虑遵循LINQ查询:
var item = (from obj in _db.SampleEntity.Include(s => s.NavProp1)
select new
{
ItemProp1 = obj,
ItemProp2 = obj.NavProp2.Any(n => n.Active)
}).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
这按预期运行,但item.ItemProp1.NavProp1为NULL.正如它在这里解释的那样,这是因为查询在使用后实际发生了变化Include().但问题是这种情况的解决方案是什么?
当我像这样更改查询时,每件事都可以正常工作:
var item = (from obj in _db.SampleEntity.Include(s => s.NavProp1)
select obj).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
关于这篇文章,我想问题是什么......但作者提供的解决方案不适用于我的情况(因为在最终选择中使用匿名类型而不是实体类型).