linq表达式错误:无法显示列名

时间:2011-10-03 03:07:48

标签: linq-to-sql c#-4.0

我正在使用LinqPad 4(nutshell数据库),我正在尝试显示(Customer)Name,这是Customer表中的一列。 如何在此查询中显示名称,因为现在我收到错误:不包含“名称”的定义?

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

2 个答案:

答案 0 :(得分:0)

您已按CustomerID分组,因此它是分组键。即在您的查询中,您应该说:customerid = SalesByYear.Key。不确定查询中的年份来源。

答案 1 :(得分: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) 
}