2011-10-03 29 views
0

我正在使用LinqPad 4(簡寫數據庫),我試圖顯示客戶表中的(客戶)名稱是一列。 如何在此查詢中顯示名稱,因爲現在出現錯誤:不包含「名稱」的定義?linq表達式錯誤:不能顯示列名

from p in Purchases 
join c in Customers on p.CustomerID equals c.ID 
group p by p.Date.Year into SalesPerYear 
select new { 
customername= SalesPerYear.First().Name, 
customerid= SalesPerYear.First().CustomerID, 
totalsales= SalesPerYear.Sum(x=>x.Price) 
} 

回答

0

嘗試......

我假設你有(價格,客戶ID和日期)列的採購表..

from p in Purchases 
group p by p.Date.Year into SalesByYear 
select new { 
customerid = SalesByYear.First().CustomerID, 
year=SalesByYear.Key, 
TotalVal = SalesByYear.Sum(g => g.Price) 
} 
0

你已經通過客戶ID進行分組,因此它是分組密鑰。即在您的查詢,你應該說:customerid = SalesByYear.Key。不確定年份來自您的查詢。

+0

對不起,我放錯了查詢,我更新它:) – user603007

+0

以上是它的工作原理的感謝!我加入另一張桌子如何顯示客戶表中的名稱? – user603007

+0

如果您在數據庫中的Customer和Purchase表之間有外鍵引用,那麼您應該能夠從Purchase中導航到Customer對象,因爲外鍵成爲導航屬性...類似SalesByYear.First()。Customer。名稱。 –