【发布时间】:2011-09-19 18:17:51
【问题描述】:
我正在使用 Entity Framework 4.1 Code First 并且还使用 PredicateBuilder,以便我可以跨多个规范类构建谓词表达式(使用规范模式)。我能够正确构建谓词并将其应用于 DbSet,并且我得到的数据是我所期望的。但是,无论我尝试什么,它总是延迟加载。这是我如何构建谓词并应用它的一个简单示例。
IQueryable<HairColor> hairColorQuery = Context.Set<HairColor>().AsExpandable();
Expression<Func<Parent, bool>> parentPredicate = PredicateBuilder.And(PredicateBuilder.True<Parent>(), p => p.NameLast.StartsWith("V")).Expand();
Expression<Func<HairColor, bool>> hairColorPredicate = PredicateBuilder.And(PredicateBuilder.True<HairColor>(), h => h.Parents.AsQueryable().Any(parentPredicate));
HairColor[] hairColors = hairColorQuery.Where(hairColorPredicate).Include(h => h.Parents).ToArray();
就像我上面所说的,我正在取回我想要的数据,但它忽略了包含。
有人有什么想法吗?
【问题讨论】:
标签: c# .net-4.0 include ef-code-first