我有一个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)'的类型参数。尝试明确指定类型参数。
答案 0 :(得分:2)
如果数据的大小使您可以将其全部存入内存,则可以在LINQ-to-Objects中进行连接;只需在原始查询中添加一些.ToList()
或.AsEnumerable()
- 加入它们的LINQ保持不变。
然而;这不能用于加入服务器。为此,要么将所需的表抛出到单个数据上下文中,要么为该查询作弊并使用TSQL。 LINQ-to-SQL的ExecuteQuery<T>
方法非常方便。