使用LINQ时,在Lightswitch的Join查询中找不到查询模式

时间:2015-05-21 11:45:37

标签: linq join visual-studio-lightswitch

var accState = from obj in this.DataWorkspace.FF_DataExtractData.stg_auto_operators
               join avo in this.DataWorkspace.FF_DataExtractData.stg_auto_veh_oper_assns on obj.etl_sequence_number equals avo.operator_seq_nbr
               join pu in this.DataWorkspace.FF_DataExtractData.punits on avo.operator_seq_nbr equals pu.c59_id
               select pu.a02_state;

错误: 无法找到源类型“Microsoft.LightSwitch.Framework.EntitySet”的查询模式的实现。找不到“加入”。考虑明确指定范围变量'obj'的类型。

我想要通过这个LINQ的状态值,

operator_seq_nbr,c59_id和etl_sequenceNumber属于LONG类型,

a02_state是字符串类型。

1 个答案:

答案 0 :(得分:0)

Lightswitch只允许您根据查询返回完整的实体,您无法重塑数据。因此,选择单个字段(在这种情况下为pu.a02_state)并不有效。无法重塑的逻辑扩展是JOIN无效,因为存在允许您组合来自不同实体的字段。

您可以使用Lambda语法返回一组符合条件的实体。但是您的查询没有任何选择标准,即使您似乎期望返回单个值。你能澄清一下数据和意图吗?