var query = from ch in Client.wcf.context.CashHeading
where ch.Id_customer == customern//cc.Id
from cs in Client.wcf.context.Cash
where cs.Id_cashheading == ch.Id
from gg in Client.wcf.context.Good
where gg.Id == cs.Id_good
select gg.Price.Value;
我收到内部错误处理它:
错误翻译LINQ表达式到URI:最后一个导航之后只能指定查询选项(排序依据,在那里,拿,跳过)。
我不明白为什么,满源在这里,在GitHub上
基本上,你必须会凝结在where子句到那里后, 所有的导航的(第一个 from
)已执行,就像这样:
var query =
from ch in Client.wcf.context.CashHeading
from cs in Client.wcf.context.Cash
from gg in Client.wcf.context.Good
where
ch.Id_customer == customern && //cc.Id
cs.Id_cashheading == ch.Id &&
gg.Id == cs.Id_good
select gg.Price.Value;
当然,这似乎不是最佳的,因为它似乎是它会做交叉连接所有的表, 然后进行过滤,但要记住,你可能处理IQueryable<T>
接口实现,这意味着,这将更可能以任何处理已转换的查询进行解释,然后进行了优化。
文章来源: Why this Linq doesn't work (Error translating Linq expression to URI: Can only specify query options (orderby, where, take, skip)