2012-07-31 66 views
0

正確的問題現在我一直在嘗試排序多年!顯示來自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

回答

1

可能使用EF(或其他ORM解決方案)。訂單和用戶之間有明顯的關係:U.userID = o.CreatedByUserID。您可以檢索用戶,然後訪問user.Orders.Count以獲取「缺失」值。

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