我試着編寫一個LINQ查詢,它會給我所有的細節在一個地方,我需要生產日期,員工姓名和這個員工應該得到的錢的總和爲他的工作。這是我到目前爲止有:不支持指定的方法LINQ和MYSQL
var PrePerWorker =
(from Production in context.production
where Production.ProductionDate >= dtpStartDate.SelectedDate && Production.ProductionDate <= dtpEndDate.SelectedDate
select new
{
Worker =
(from Employee in context.employees
where Employee.ID == Production.EmpID
select Employee.FirstName).FirstOrDefault(),
DateOfProduction = Production.ProductionDate,
Total =
Production.Side == 1 ? Production.Amount *
(from Product in context.products
where Product.ProductID == Production.ProductID
select Product.SideA).FirstOrDefault():
Production.Side == 2 ? Production.Amount *
(from Product in context.products
where Product.ProductID == Production.ProductID
select Product.SideB).FirstOrDefault():
Production.Side == 3 ? Production.Amount *
(from Product in context.products
where Product.ProductID == Production.ProductID
select Product.SideC).FirstOrDefault(): 0
}).GroupBy(x => x.DateOfProduction, x => x.Worker);
當我運行這個,然後嘗試遍歷結果我得到一個錯誤說「不支持指定的方法」。
任何人都知道爲什麼?我該如何解決這個問題?
因爲你的linq不能被翻譯成mysql查詢。你在這裏的意思是「.GroupBy(x => x.DateOfProduction,x => x.Worker);」? –
那我該怎麼辦?我打算由2個「列」組合 –
您有效地使用GroupBy的[this overload](http://msdn.microsoft.com/zh-cn/library/bb549270.aspx),這顯然不受查詢支持供應商。當它說「指定方法」時,我希望某個方法在某處指定,是嗎? (內部例外也許?) –