首页 > 解决方案 > Linq Select 中 SubSelect 的语法

问题描述

我有语法问题,需要一些比我聪明的人。

这是我的选择声明

    var Materials = from j in db.Jobs
                join je in db.a_Job_Extensions on j.Top_Lvl_Job equals je.Job
                join mr in db.Material_Reqs on j.Job1 equals mr.Job
                join m in db.Materials on mr.Material equals m.Material1
                where jobList.Contains(j.Top_Lvl_Job)
                select new 
                { 
                    je.PCR,
                    mr.Job,
                    j.Top_Lvl_Job,
                    OrderQty = ((from j1 in db.Jobs where j1.Job1 == j.Top_Lvl_Job select new { j1.Order_Quantity}).FirstOrDefault()).ToString(),
                    j.Part_Number,
                    mr.Material,
                    mr.Description,
                    mr.Est_Qty,
                    m.Status,
                    theClass = m.Class == null? "": m.Class
                };

j1.Order_Quantity 是 Job 表中的一个 double。但是当我运行查询时,它返回一个值“{ Order_Quantity = 607 }”。

我的愿望是让它只返回“607”的值。

我在这里做错了什么?

该代码最初试图将其作为双精度输出,但我切换到字符串以查看结果。我来自 sql 背景,所以我一定错过了一些愚蠢的东西。

标签: c#linq

解决方案


尝试这个

((from j1 in db.Jobs where j1.Job1 == j.Top_Lvl_Job select 
    j1.Order_Quantity.ToString()).FirstOrDefault())

推荐阅读