实体框架中的查询语法

时间:2015-04-21 18:54:24

标签: sql entity-framework-4

我正在进行查询(见下文),但我不知道如何从选择中检索所有数据。

var model = new dbContext();
var query = from mp in model.matiere_premiere join req in (from stk in model.stock_mp
                         join ms in model.matiere_premiere
                         on stk.matiere_premiere_code equals
                         ms.code
                         where stk.date <= DateTime.Today
                         orderby stk.date descending
                         select new new { stk.qte, stk.matiere_premiere_code })
                    on mp.code equals req.matiere_premiere_code
                    group mp by new { mp.code } into grp
                    orderby grp.Key
                    select new
                    {
                        grp.Key,
                        grp.First().designation,
                        grp.Last().frns

                    };

等效的sql查询是:

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)

很简单,该组也是一个枚举器,所以你应该返回

select grp;

然后,对于每个组,您可以执行值的预测

foreach(var group in query)
{
    Console.WriteLine("Key: " + group.Key);
    foreach(var v in group)
    {
        Console.WriteLine("Value: " + v.Property);
    }
}