Linq异常表达式必须是MemberExpression

问题描述:

我正在处理linq查询,并尝试将实体包含到Mutilevel include in C# Linq中建议的多级别实体。Linq异常表达式必须是MemberExpression

所以我写下像

query.Include(u => u.Stops.Select(d => d.Address).Select(c => c.City)); 

查询,其中查询

IQueryable<SomeEntity> query 

,我得到异常

表达式必须是一个MemberExpression

截图我的实体是enter image description here 请帮忙,谢谢

+1

显示你的'SomeEntity','Stop'和'Address'实体。目前还不清楚这些导航属性属于哪个。 – 2012-02-01 11:27:57

+0

检查文档:http://msdn.microsoft.com/en-us/library/gg671236(v=vs.103).aspx。似乎你需要嵌套'Select()',而不是链接它们。甚至有一个你想要做的事情的例子。 – millimoose 2012-02-01 11:38:27

+0

拉迪斯拉夫,我已经上传了我的实体的屏幕截图,请确认 – MegaMind 2012-02-01 11:55:46

这种超负荷的Include(扩展名?)过法链不支持包容。它,然而,支持包括表达式嵌套:

query.Include(u => u.Stops.Select(d => d.Address.City)); 

// this would work too: 
categories.Include(u => u.SubCategories.Select(c => c.Items.Select(i => i.Manufacturer))); 
// equals 
categories.Include("SubCategories.Items.Manufacturer"); 

Select部分仅用于访问集合类型属性的项目的成员。

+0

谢谢,我试过了,但它仍然给出了相同的例外 – MegaMind 2012-02-01 11:38:43