Linq语法中的子查询

时间:2015-02-24 14:44:38

标签: c# sql linq postgresql nhibernate

我在SQL中遇到过这样的查询:

SELECT d.doku_id, 
       d.tyde_id
FROM
(
    SELECT doku_id,
           (data_przekazania) as data_przekazania
    FROM dekretacje dek 
        GROUP BY doku_id
        ORDER BY data_przekazania desc
) s JOIN dekretacje d
        ON s.doku_id = d.doku_id
        WHERE d.doku_id = dokument_id
        LIMIT 1;

此代码采用Linq C#语法:

var subData = (from d in dc.Query<Dekretacja>()
               group d by d.Dokument.Id into newGroup
               select new WidokDekretacja { DokumentId = newGroup.Key,
                             DataPrzekazania = newGroup.Max(q => q.DataPrzekazania) })
               .OrderByDescending(o => o.DataPrzekazania).ToList();

这是我的结果查询:

var data = (from d in dc.Query<Dekretacja>()
            join dek in subData on d.Dokument.Id equals dek.DokumentId
            where d.Dokument.Id == dokumentId
            select d).FirstOrDefault();

但我的data变量没有数据并且给我例外。

0 个答案:

没有答案