显示SQL Select语句的结果

时间:2012-07-31 11:13:40

标签: c# .net sql entity-framework-4

正确的问题我现在一直在尝试排序!

我正在尝试显示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方法。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

可以使用EF(或其他ORM解决方案)。订单与用户之间显然存在关联:U.userID = o.CreatedByUserID。您只需检索用户,然后访问user.Orders.Count即可获得“缺失”值。

答案 1 :(得分:0)

假设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)
       };