显示来自SQL Select Statment的结果

问题描述:

正确的问题现在我一直在尝试排序多年!显示来自SQL Select Statment的结果

我试图显示来自SQL select命令的结果并将此信息显示到我的视图。我不能简单地使用EntityFramework,而不是从我所能看到的任何地方执行命令,因为我从两个不同的表中引入数据并显示为一个,这是为了报告。

这是我需要运行的sql命令。

select FirstName, LastName, 
(select count(*) from Orders o where U.userID = o.CreatedByUserID and ProductID = 1) as ProductCount 
from Users U 
order by UserID 

有什么我可以做的来运行这个命令?如果我不能直接运行SQL,我会愿意尝试使用EntityFramwork的方法。

在此先感谢您的帮助!

+0

*有什么*您是否尝试过和失败了吗? – 2012-07-31 11:44:23

+0

是的。多次!! – 2012-07-31 11:48:23

+1

“是”不是对“什么”的回答。 – 2012-07-31 11:50:12

可能使用EF(或其他ORM解决方案)。订单和用户之间有明显的关系:U.userID = o.CreatedByUserID。您可以检索用户,然后访问user.Orders.Count以获取“缺失”值。

假设CTX是您的上下文尝试

var q=from u in ctx.users 
     join x in ctx.orders.Where(y=>y.ProductID==1).GroupBy(y => y.CreatedByUserID) 
     on u.UserID equals x.Key into joined_orders 
from o in joined_orders.DefaultIfEmpty() 
select new { 
     FirstName=u.FirstName, 
     LastName=u.LastName, 
     Count=o.Count() 
     }; 

这里假设你没有在模型中定义的任何关系,否则你可以只使用

var q=from u in ctx.users 
     select new { 
     FirstName=u.FirstName, 
     LastName=u.LastName, 
     Count=o.Count(x=>x.ProductID==1) 
     };