c# - 加入两个单独的 linq 查询

标签 c# linq linq-to-sql

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

不过,我可以通过执行单独的 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)”的类型参数。尝试明确指定类型参数。

最佳答案

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

但是;这不能用于在服务器上加入。为此,要么将您需要的表放入单个数据上下文中,要么欺骗并使用 TSQL 进行该查询。 LINQ-to-SQL 的 ExecuteQuery<T>方法对于此类目的非常方便。

关于c# - 加入两个单独的 linq 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4968515/

相关文章:

c# - 为什么UndistortPoints()对于这些输入点失败?

c# - 比较两个自定义 LIST 对象

c# - LINQ 排序匿名类型?

c# - 我怎么知道图片何时加载到 Picturebox 中

c# - 这个自引用继承代码中发生了什么?

c# - 如何获取 IObservable<IObservable<T>> 的最新变化事件?

c# - LINQ:使用 "AND"时生成 "OR"表达式而不是 "CONTAINS"

c# - 在 Linq 的 GroupBy 中取 1

c# - LINQ to SQL 和空值

c# - 在 Linq to Sql 查询中获取默认值类型 (DateTime),结果为空