0

すべての詳細を 1 か所で取得できる LINQ クエリを作成しようとしました。生産日、従業員の名前、およびこの従業員が仕事に対して得る金額が必要です。これは私がこれまでに持っているものです:

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

これを実行して結果を反復しようとすると、「指定されたメソッドはサポートされていません」というエラーが表示されます。
誰でも理由を知っていますか?どうすればこれを修正できますか?

4

2 に答える 2

0

私の推測では、それは三次ですか?: 演算子を SQL に変換できません

于 2013-01-16T14:40:36.343 に答える
0

2列でグループ化するには、が必要GroupBy(x => new {x.DateOfProduction, x.Worker});です。あなたのlinqは私にとってとても難しいように見えるので、あなたが必要とするものを説明してもらえますか.

于 2013-01-16T14:47:38.963 に答える