C# 如何在ASP.NET MVC控制器和视图中使用3个表进行SQL查询?

C# 如何在ASP.NET MVC控制器和视图中使用3个表进行SQL查询?,c#,sql,asp.net,linq,model-view-controller,C#,Sql,Asp.net,Linq,Model View Controller,我必须编写Web应用程序来报告工人的加班时间、收到的小时数和saldo(加班减去收到的小时数) 如果人们加班或收到加班,他们必须填写表格,表格保存在数据库中。我必须为每个人做一份报告,其中将有一些加班时间、收到的小时数和余额(saldo) 加班和接收小时数的开始和结束变量为TimeSpan 我的报告由三个表组成:dbo.People、dbo.OverTimes和dbo.ReceivedHours。我对该报表执行了SQL查询 SELECT p.Name,p.Surname, ISNULL(SUM

我必须编写Web应用程序来报告工人的加班时间、收到的小时数和saldo(加班减去收到的小时数)

如果人们加班或收到加班,他们必须填写表格,表格保存在数据库中。我必须为每个人做一份报告,其中将有一些加班时间、收到的小时数和余额(saldo)

加班和接收小时数的开始和结束变量为TimeSpan

我的报告由三个表组成:dbo.People、dbo.OverTimes和dbo.ReceivedHours。我对该报表执行了SQL查询

SELECT p.Name,p.Surname, 
ISNULL(SUM(DATEDIFF(minute,o.Start2, o.End2)),0) AS 'Overtime (min)',
ISNULL(SUM(DATEDIFF(minute,r.Start1, r.End1)),0) AS 'received hours (min) ',
ISNULL(SUM(DATEDIFF(minute,o.Start2, o.End2)),0)-ISNULL(SUM(DATEDIFF(minute,r.Start1, r.End1)),0) AS'Saldo (min)',
CONCAT((ISNULL(SUM(DATEDIFF(minute,o.Start2, o.End2)),0)-ISNULL(SUM(DATEDIFF(minute,r.Start1, r.End1)),0))/60, 
':' , (ISNULL(SUM(DATEDIFF(minute,o.Start2, o.End2)),0)-ISNULL(SUM(DATEDIFF(minute,r.Start1, r.End1)),0))%60) AS 'Saldo'
FROM [dbo].[People] AS p 
left join [dbo].OverTimes AS o ON p.PersonID=o.PersonID
left join [dbo].ReceivedHours AS r ON p.PersonID=r.PersonID
GROUP BY p.Name, p.Surname;

您能帮助我,我如何在ASP.NET MVC控制器中使用此SQL查询,然后在视图中显示它吗

或者你能把我的问题翻译成LINQ吗

你认为我必须做新的动态模型吗


感谢您的帮助。

您需要将问题分解为几个小部分。您需要一个数据层来运行查询,并将结果转换为表示数据的某个模型对象(类结构)。您的控制器应该调用该数据层以获取数据,然后将其作为视图模型的一部分传递给视图。最简单的方法是将SQL设置为存储过程,然后从c#调用该存储过程。我为此做了相应的处理,但我不知道如何在视图中的控制器中调用它。请尝试以下帖子: