如何表示为实体框架查询

时间:2015-04-19 17:31:27

标签: 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,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`

1 个答案:

答案 0 :(得分:0)

这应该有效,但是未经测试。你可能想看看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}