2015-10-07 25 views
-3

這裏描述2個表LINQ查詢2個表按日期排序

評語表

ID   Comment Id  OrderDate            
---   ---------- -------------------- 
1   1    2003-10-13 08:00:00 
2   2    2003-10-12 10:00:00 
3   1    2003-10-10 12:00:00 

SHARE TABLE

ID   Share Id  OrderDate            
---   ---------- -------------------- 
1   1    2003-10-11 08:00:00 
2   2    2003-10-15 10:00:00 
2   2    2003-10-12 10:00:00 

現在的兩個表我想獲取列表日期智者。

單元輸出將

ID  OrderDate            
--- ------------------- 
3  2003-10-10 12:00:00(Comment) 
1  2003-10-11 08:00:00(Share) 
3  2003-10-16 12:00:00(Comment) 

我們怎樣才能生成Linq查詢?

+0

可以顯示一些代碼你在想什麼? – Davecz

+0

我在考慮將評論和分享的所有數據以及應用日期明智的順序結合起來。但不知道如何將這些數據結合起來? 因爲我想獲取10個最高的數據僅降序排列日期 –

+0

請嘗試先閱讀:https://msdn.microsoft.com/en-us/library/bb397933.aspx – Davecz

回答

0
public class ShareEntry 
{ 
    public DateTime Date; 
    public int ID; 
    public int shareID; 
} 

public class CommentEntry 
{ 
    public DateTime Date; 
    public int ID; 
    public int commentID; 
} 

利用如上設置類,LINQ查詢應該是這樣的:

IEnumerable<ShareEntry> share = new List<ShareEntry>(); 
    IEnumerable<CommentEntry> comment = new List<CommentEntry>(); 
    var output = share 
     .Select(x => new 
    { 
     id = x.ID, 
     date = x.Date, 
     type = "share" 
    }) 
     .Concat(comment. 
      Select(x => new 
      { 
       id = x.ID, 
       date = x.Date, 
       type = "comment" 
      })) 
     .OrderByDescending(x => x.date).Take(10); 
0

按你的話,你可以試試下面的query

SELECT distinct id, orderdate FROM 
(
SELECT id, orderdate FROM `comment` 
UNION ALL 
SELECT id, orderdate FROM `share` 
) a 
ORDER BY a.orderdate DESC 
LIMIT 10; 
+0

感謝..它的工作原理。會將sql查詢更改爲linq –