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
截图我的实体是 请帮忙,谢谢
答
这种超负荷的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
显示你的'SomeEntity','Stop'和'Address'实体。目前还不清楚这些导航属性属于哪个。 – 2012-02-01 11:27:57
检查文档:http://msdn.microsoft.com/en-us/library/gg671236(v=vs.103).aspx。似乎你需要嵌套'Select()',而不是链接它们。甚至有一个你想要做的事情的例子。 – millimoose 2012-02-01 11:38:27
拉迪斯拉夫,我已经上传了我的实体的屏幕截图,请确认 – MegaMind 2012-02-01 11:55:46