asp.net-mvc - Linq:模型未正确绑定(bind)到数据库 View (使用 UNION 查询)

标签 asp.net-mvc linq union model-binding sql-view

我有一个由两个查询之间的联合组成的 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/

相关文章:

c# - Servicestack - 用于使用自动查询 rdbms API 的 OR 运算符

c# - LINQ 的摘要行

mysql - 从表中选择行加上与一个查询中所选行相关的行

sql - 同一数据库内的排序规则冲突

c# - 将多维集合转换为带分隔符的字符串

mysql - 将具有相同列的不同 MySQL 表上的数据组合并合并为唯一行并对其运行查询

javascript - jquery:未捕获类型错误:非法调用

c# - RouteUrl 将查询字符串参数中的 "&"替换为 "&amp;"

c# - 使用 Linq 的对象总和列表

c# - 使用 LINQ to Entities 将派生类转换为基类