我有一個像這樣的查詢,我想要聯合這兩個查詢。但是聯合條件是兩個表的結果都必須具有相同的列名,所以必須檢索GroupName,但在此查詢中必須將其替換爲Type1。列別名LINQ查詢
var vTLst = (from t in db.Types select t.Type1).Union
(from g in db.Groups select g.GroupName).ToList().Distinct();
幫我請...
我有一個像這樣的查詢,我想要聯合這兩個查詢。但是聯合條件是兩個表的結果都必須具有相同的列名,所以必須檢索GroupName,但在此查詢中必須將其替換爲Type1。列別名LINQ查詢
var vTLst = (from t in db.Types select t.Type1).Union
(from g in db.Groups select g.GroupName).ToList().Distinct();
幫我請...
這是不對的,如果t.Type1
和g.GroupName
是列和相同的輸入查詢內容應該工作。結果將只是IQueryable<string>
或您擁有的任何列類型,不包含名稱或任何類型的匿名類型。
如果您的查詢具有更多列或匿名類型,則可以使用列別名。
var vTLst = (from t in db.Types select new {Col1 = t.Type1, Col2 = t.Type2}).Union
(from g in db.Groups select new {Col1 = g.GroupName, Col2 = g.Col2})
.ToList().Distinct();
如果你的問題是,列屬於同一類型的不是你可以將它們轉換爲相同類型
var vTLst = (from t in db.Types select t.Type1.ToString()).Union
(from g in db.Groups select g.GroupName.ToString()).ToList().Distinct();
SELECT Type1 FROM Types UNION SELECT DISTINCT GroupName AS Type1 FROM Groups這是我的查詢,在查詢分析器中正常工作。您可以將其轉換爲LINQ Query。 – 2011-03-30 06:29:30
它應該工作,你得到任何錯誤?什麼樣的列類型是'Type1'和'GroupName'? – 2011-03-30 06:33:10
請注意:爲了提高效率,在將結果發送給客戶端之前,應該在'.ToList()'之前運行'.Distinct()'以讓數據庫執行'Distinct'。 – 2011-03-30 06:35:17