Linq 到 SQL 联合数据从两个表合并到单个 IEnumerable/IQueryable 中

本文关键字:合并 两个 单个 IQueryable IEnumerable SQL 数据 Linq | 更新日期: 2023-09-27 17:57:03

我在单独的SQL Server数据库中(在不同的服务器上)中有两个日志表。 这两个表具有完全相同的架构。在我的 .NET 应用程序中,我可以创建两个 Linq to SQL 类集合(DBML 文件),然后执行我自己的自定义 Linq 查询以合并两个表并返回匿名类型。 但是我在同一个桌子上有几个查询(都略有不同),每次做联合都是重复的。

是否可以将两个表合并为一个具体的/命名类型 IEnumerable? 基本上我想做的是这样的:

var logs = Logs.Where(l => l.TimeStart >= DateTime.Today)

并且Logs实际上从两个表中返回数据,并将明智的查询发送到两个数据库服务器,无论我在.Where()中放入什么。

这可能吗?

Linq 到 SQL 联合数据从两个表合并到单个 IEnumerable/IQueryable 中

我相信开

箱即用,你不能得到一个涵盖多个数据上下文的IQueryable。你提到你有

单独的 SQL Server 数据库(在不同的服务器上)。

解决方案可能是创建链接视图。示例:在 SQL Server 中使用链接服务器数据库创建视图

获得链接视图后,查询将相当简单且清晰。