我有一个由两个查询之间的联合组成的 View 。例如
SELECT num, title, discipline FROM Table1
UNION
SELECT number, heading, job FROM Table2
但是,当我使用 LINQ 查询数据库时,仅输出连接顶部的查询结果 (SELECT num, title, discipline FROM Table1
)。底部查询不是。因此,删除顶级查询不会返回任何值。用于绑定(bind) View 的模型的参数匹配 View 中联合查询的顶部查询的列名。
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 中的记录数恰好等于联合中第一个查询的记录数。请问我还能如何调试?
最佳答案
如果您使用存储库模式,请在您的 Controller 或存储库中尝试以下代码...
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");
然后,将结果传递给 View ..
return view(result);
希望你的问题没问题。
关于asp.net-mvc - Linq:模型未正确绑定(bind)到数据库 View (使用 UNION 查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16750196/