正确的问题我现在一直在尝试排序!
我正在尝试显示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 :(得分: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)
};