3

我有一个由两个查询之间的联合组成的视图。例如

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

SELECT num, title, discipline FROM Table1但是,当我使用 LINQ 查询数据库时,只会输出连接()顶部的查询结果。底部查询不是。因此,删除顶部查询不会返回任何值。用于绑定到视图的模型的参数与视图中联合查询的顶部查询的列名相匹配。

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 中的记录数正好等于联合中的第一个查询。请问我还能如何调试这个?

4

1 回答 1

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);

我希望你的问题可能没问题。

于 2013-05-27T08:24:19.307 回答