加入两个单独的linq查询

时间:2011-02-11 11:35:39

标签: c# linq linq-to-sql

我有一个LINQ查询,它会生成一系列作业记录。 由于LINQ-To-SQLs有关跨上下文查询的限制/限制,我无法连接表,因此作业记录的两个字段为空。

然而,我可以通过单独的LINQ查询获得这些。

我的问题是,我可以轻松地填充这两个字段,例如通过对这两个查询进行连接吗? - 如果是这样的话?

query1.Join(query2,..... and so on);

提前致谢。

修改

var results = query1.Join(query2,
                        job => job.JobID,
                        other => other.JobID,
                        (job, other) => new
                        {
                            MissingField = other.Field,
                            OtherMissingField = other.OtherField
                        });

我收到错误消息: 无法从用法中推断出方法'System.Linq.Enumerable.Join(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func)'的类型参数。尝试明确指定类型参数。

1 个答案:

答案 0 :(得分:2)

如果数据的大小使您可以将其全部存入内存,则可以在LINQ-to-Objects中进行连接;只需在原始查询中添加一些.ToList().AsEnumerable() - 加入它们的LINQ保持不变。

然而;这不能用于加入服务器。为此,要么将所需的表抛出到单个数据上下文中,要么为该查询作弊并使用TSQL。 LINQ-to-SQL的ExecuteQuery<T>方法非常方便。