Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
嵌套查询linq到实体_Linq_Entity Framework - Fatal编程技术网

嵌套查询linq到实体

嵌套查询linq到实体,linq,entity-framework,Linq,Entity Framework,你能帮我在linq中解释这个sql查询吗 SELECT DATA_MAX_qh.DATA_MAX,DATA_MAX_qh.[QUOT_CODE],[QUOT_VALUE],q.QUOT_DESCR,q.QUOT_DESCR_ALIAS FROM [dbo].[QUOTATION_HISTORY] qh INNER JOIN (SELECT MAX(QUOT_DATA) DATA_MAX, QUOT_CODE FROM

你能帮我在linq中解释这个sql查询吗

   SELECT DATA_MAX_qh.DATA_MAX,DATA_MAX_qh.[QUOT_CODE],[QUOT_VALUE],q.QUOT_DESCR,q.QUOT_DESCR_ALIAS
            FROM [dbo].[QUOTATION_HISTORY] qh INNER JOIN
            (SELECT MAX(QUOT_DATA) DATA_MAX, QUOT_CODE
            FROM [dbo].[QUOTATION_HISTORY]
            GROUP BY [QUOT_CODE]) DATA_MAX_qh on
            DATA_MAX_qh.DATA_MAX = qh.QUOT_DATA and  DATA_MAX_qh.QUOT_CODE = qh.QUOT_CODE
            inner join [dbo].[AN_QUOTAZIONE] q on q.QUOT_CODE = qh.QUOT_CODE 
我需要做的第一件事是在表上分组,以获得最大日期及其匹配值 然后使用此筛选表进行更完整的选择

我从这个开始

  var qhmaxdatevalue = from qh in context.QUOTATION_HISTORY
                                 where qh.QUOT_DATA < System.DateTime.Now
                                 group qh by qh.QUOT_CODE into qhgroupedbycode
                                 select new { Quot_Code = qhgroupedbycode.Key, Data_Max = qhgroupedbycode.Max(x => x.QUOT_DATA) };
var qhmaxdatevalue=来自context.quote\u历史中的qh
其中qh.QUOT_DATAx.Quot_Data)};
但现在我如何继续? 使用嵌套查询


你能帮我吗?

也许是这样的:

var query = 
context.QUOTATION_HISTORY
.GroupBy            
(
    x=>x.QUOT_CODE
)
.Select
(
    x=>
    new 
    {
        QUOT_CODE = x.Key,
        DATA_MAX = x.Max(z=>z.QUOT_DATA)
    }
)
.Join
(
    context.QUOTATION_HISTORY,
    x=>new{DATA_MAX,QUOT_CODE},
    x=>new{QUOT_DATA,QUOT_CODE},
    (DATA_MAX_qh,qh)=>new
    {
        DATA_MAX_qh.DATA_MAX,
        DATA_MAX_qh.QUOT_CODE,
        qh.QUOT_VALUE
    }
)
.Join
(
    context.AN_QUOTAZIONE,
    x=>QUOT_CODE,
    x=>QUOT_CODE,
    (qh,q)=>new
    {
        qh.DATA_MAX,
        qh.QUOT_CODE,
        qh.QUOT_VALUE,
        q.QUOT_DESCR,
        q.QUOT_DESCR_ALIAS
    }
);
var result= (
        from qh in db.QUOTATION_HISTORY
        from DATA_MAX_qh in 
            (
                from innerqh in db.QUOTATION_HISTORY
                group innerqh by innerqh.QUOT_CODE into g
                select new
                {
                    DATA_MAX=g.Max(x => x.QUOT_DATA),
                    QUOT_CODE=g.Key
                }
            ).Where(a=>a.DATA_MAX == qh.QUOT_DATA && a.QUOT_CODE == qh.QUOT_CODE)
        join q in db.AN_QUOTAZIONE 
            on qh.QUOT_CODE equals q.QUOT_CODE
        select new 
        {
            DATA_MAX_qh.DATA_MAX,
            DATA_MAX_qh.QUOT_CODE,
            qh.QUOT_VALUE,
            q.QUOT_DESCR,
            q.QUOT_DESCR_ALIAS
        }
    ).ToList();

其中db是linq数据上下文

可能类似于:

var result= (
        from qh in db.QUOTATION_HISTORY
        from DATA_MAX_qh in 
            (
                from innerqh in db.QUOTATION_HISTORY
                group innerqh by innerqh.QUOT_CODE into g
                select new
                {
                    DATA_MAX=g.Max(x => x.QUOT_DATA),
                    QUOT_CODE=g.Key
                }
            ).Where(a=>a.DATA_MAX == qh.QUOT_DATA && a.QUOT_CODE == qh.QUOT_CODE)
        join q in db.AN_QUOTAZIONE 
            on qh.QUOT_CODE equals q.QUOT_CODE
        select new 
        {
            DATA_MAX_qh.DATA_MAX,
            DATA_MAX_qh.QUOT_CODE,
            qh.QUOT_VALUE,
            q.QUOT_DESCR,
            q.QUOT_DESCR_ALIAS
        }
    ).ToList();

其中db是linq数据上下文

谢谢你,如果我需要在qc上添加左连接[dbo].[u QUOTAZIONE'u CUSTOM]qc.[QUOT'u CODE]=q.QUOT'u代码,其中qc.QUOT'u代码为空谢谢你,如果我需要在qc上添加左连接[dbo].[u QUOTAZIONE'u CUSTOM]qc.[QUOT'u CODE]=q.QUOT'u代码,其中qc.QUOT'u代码为空