我正在使用Entity Framework 4.3
我有3个表,贷方,产品和产品详细信息
贷方有多个产品,而产品有多个ProductDetail行
这是我尝试使用的一大块代码:
Lender SingleOrDefault(Expression<Func<Lender, bool>> predicate)
{
using (var uow = new UnitOfWork(Connections.LoanComparision))
{
var r = new Repository<Lender>(uow.Context);
return r.Find(predicate)
.Where(x =>
x.IsPublished &&
x.Products.Any(y => y.IsPublished))
.Include(x => x.Products.SelectMany(y => y.ProductDetails))
.SingleOrDefault();
}
}
问题出在Include上 - 我试图让Lender =&gt;产品=&gt;产品详情。即使我知道它是正确链接的,我也无法在intellisense中查看该表。我认为SelectMany可能有效,但它给我一个运行时错误。
有关如何实现这一目标的任何想法?
答案 0 :(得分:1)
您执行selectmany
但是要将list of list
展平为list
。
要包含相关列表,您应该按照开发者用户
中注明的注释进行选择Include(x => x.Products.Select(y => y.ProductDetails))