2013-05-25 44 views
3

我有兩個查詢之間的聯合組成的視圖。例如Linq:模型無法正確綁定到數據庫視圖(使用UNION查詢)

SELECT num, title, discipline FROM Table1 
UNION 
SELECT number, heading, job FROM Table2 

然而,當我使用LINQ,只有查詢結果在加入(SELECT num, title, discipline FROM Table1)的頂部查詢數據庫被輸出。底部查詢不是。刪除頂部查詢因此不會返回任何值。用於綁定到視圖的模型的參數與視圖中聯合查詢的頂部查詢的列名稱匹配。

public class mumodel 
{ 
    pubic int num{get; set;} 
    public string title{get; set;} 
    public string discipline{get; set;} 
} 

我試圖重新命名的第二個查詢的列以及但這不起作用

SELECT num, title, discipline FROM Table1 
UNION 
SELECT number AS num, heading AS title, job AS discipline FROM Table2 

我的連接查詢的SSMS與正確的記錄計數執行好。但是,LINQ中的記錄數量與聯合中的第一個查詢的數量相等。請問我該怎麼調試呢?

回答

2

請嘗試以下代碼在您的控制器或在你的倉庫,如果你使用存儲庫模式...

IEnumerable<mumodel> result = dbContext.Database.SqlQuery<mumodel>("SELECT num, title, discipline FROM Table1 
UNION 
SELECT number AS num, heading AS title, job AS discipline FROM Table2"); 

然後,結果傳遞給視圖..

return view(result); 

希望你的問題可能沒問題。

+0

謝謝結果是第二個查詢的某些列中的類型不匹配。 – jpo

相關問題