显示来自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的方法。
在此先感谢您的帮助!
答
您可能使用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)
};
*有什么*您是否尝试过和失败了吗? – 2012-07-31 11:44:23
是的。多次!! – 2012-07-31 11:48:23
“是”不是对“什么”的回答。 – 2012-07-31 11:50:12