2013-02-02 74 views
1

我在單獨的SQL Server數據庫(不同服務器上)有兩個日誌表。這兩個表具有完全相同的模式。在我的.NET應用程序中,我可以創建兩個Linq to SQL類集合(DBML文件),然後執行我自己的自定義Linq查詢來合併這兩個表並返回一個匿名類型。但是我在同一張桌子上有幾個查詢(全部略有不同),每次做聯合都是重複的。Linq to SQL將兩個表中的數據合併爲一個IEnumerable/IQueryable

是否有可能將兩個表合併爲一個具體/命名類型IEnumerable?基本上我想要做的是一樣的東西:

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

而且具有Logs實際上是從兩個表返回數據,並傳送到兩個數據庫服務器不管我放在.Where()明智的查詢。

這可能嗎?

+0

你能告訴我們你的工會代碼嗎? –

+0

我實際上使用[this](http://stackoverflow.com/a/13503860/62072)的FullOuterJoin擴展方法回答。 –

+1

@TomHunter你是否嘗試過創建一個單獨的類,並將union作爲new()類的一部分作爲對象返回?這樣在你的代碼中,你只需創建一個類的新實例(並且聯合等是作爲new()子的一部分完成的) – twoleggedhorse

回答

1

我相信開箱即可以獲得一個覆蓋多個datacontexts的IQueryable。你提到你有

單獨的SQL Server數據庫(在不同的服務器上)。

解決方案可能是創建鏈接視圖。例如:Create View using Linked Server db in SQL Server

一旦你有了鏈接視圖,查詢將相當簡單和直截了當。

+0

我希望避免對數據庫進行任何更改/添加視圖。 –