【发布时间】:2013-02-02 18:58:42
【问题描述】:
我在不同的 SQL Server 数据库中有两个日志表(在不同的服务器上)。这两个表具有完全相同的架构。在我的 .NET 应用程序中,我可以创建两个 Linq to SQL 类集合(DBML 文件),然后执行我自己的自定义 Linq 查询来合并两个表并返回一个匿名类型。但是我在同一张表上有几个查询(都略有不同),每次都做联合是重复的。
是否可以将两个表合并为一个具体/命名类型 IEnumerable?基本上我想做的是:
var logs = Logs.Where(l => l.TimeStart >= DateTime.Today)
并且让Logs 实际上从两个表返回数据,并且无论我在.Where() 中放入什么,都会将合理的查询发送到两个数据库服务器。
这可能吗?
【问题讨论】:
-
你能告诉我们你的工会代码吗?
-
我实际上正在使用来自this SO answer的 FullOuterJoin 扩展方法。
-
@TomHunter 您是否尝试过创建一个单独的类并将联合作为对象作为类 new() 的一部分返回?这样,在您的代码中,您只需创建一个类的新实例(并且联合等作为 new() 子的一部分完成)
-
@TomHunter 希望这有点道理......
-
我认为它实际上是我需要的 IQueryable。无论我在
Where()中使用哪种过滤,我都需要将合理的查询发送到数据库。
标签: c# sql-server linq linq-to-sql .net-4.0