Entity framework 如何表示为实体框架查询

Entity framework 如何表示为实体框架查询,entity-framework,asp.net-mvc-4,Entity Framework,Asp.net Mvc 4,如何将其表示为实体框架查询语法 SELECT matiere_premiere.`code`, matiere_premiere.`designation`, matiere_premiere.`unite`, matiere_premiere.`frns` , IF(ISNULL(REQ.qte), '0.00', REQ.qte) AS qte FROM matiere_premiere LEFT JOIN (SELECT qte,m

如何将其表示为实体框架查询语法

SELECT matiere_premiere.`code`,
       matiere_premiere.`designation`,
       matiere_premiere.`unite`,
       matiere_premiere.`frns` ,
       IF(ISNULL(REQ.qte), '0.00', REQ.qte) AS qte
FROM matiere_premiere 
LEFT JOIN (SELECT qte,matiere_premiere_code 
    FROM stock_mp JOIN matiere_premiere 
    ON matiere_premiere.`code` = matiere_premiere_code 
    WHERE DATE <= CURRENT_DATE() 
    ORDER BY DATE DESC 
     ) AS REQ ON REQ.matiere_premiere_code = matiere_premiere.`code`
GROUP BY matiere_premiere.`code` 
ORDER BY matiere_premiere.`code`

这应该是可行的,但还没有经过测试。你可能想调查LinqPad

var now = DateTime.Now;

from m in matiere_preiere
join req in 
(from s in stock_mp
 join m2 in matire_preimere on s.code equals m2.matire_preiere_code
 where s.Date <= now
 select new {qte, matirere_premiere_code}) 
on req.matirere_premiere_code equals m.code into reql
from req in reql.DefaultIfEmpty()
order by m.code
select new {m.code, m.designation, m.unite,m.frns, qte=req.qte ?? 0.00}

我试过了,但我知道下一步在group by:var query=from mp in model.matiere\u premiere join req in from stk in model.stock\u mp join ms in model.matiere\u premiere on stk.matiere\u premiere\u code等于ms.code,其中,mp.code上的stk.date选择new{stk.qte,stk.matiere_premiere_code}等于req.matiere_premiere_code group mp by new{mp.code}进入grp orderby grp。键选择new{grp.Key,grp.First.designation,};model是上下文您可以使用Linq表达式或Lamba表达式在实体框架中编写查询。