C# 如何使用左join、aggregate和where子句创建LINQtoSQL

C# 如何使用左join、aggregate和where子句创建LINQtoSQL,c#,database,entity-framework,linq-to-sql,C#,Database,Entity Framework,Linq To Sql,有人知道如何将此查询转换为LINQ到SQL吗 SELECT posts.*, count(COMMENTS.*) AS comment_count FROM POSTS LEFT JOIN COMMENTS on POSTS.id = COMMENTS.post_id WHERE comments.date IS NULL OR comments.date >= [NOW] GROUP BY posts.id ORDER BY comment_count DESC 在SQL中这很简单,但

有人知道如何将此查询转换为LINQ到SQL吗

SELECT posts.*, count(COMMENTS.*) AS comment_count FROM POSTS
LEFT JOIN COMMENTS on POSTS.id = COMMENTS.post_id
WHERE comments.date IS NULL OR comments.date >= [NOW]
GROUP BY posts.id
ORDER BY comment_count DESC
在SQL中这很简单,但我很难理解LINQtoSQL。任何帮助都将不胜感激


谢谢

只是一个建议,您可以随时使用这个伟大的工具


要帮助进行转换,建议您随时使用此伟大的工具


要帮助进行转换,请执行以下操作:

var query =
    from p in POSTS
    join c in COMMENTS on p.id equals c.post_id into cs
    group new
    {
        Post = p,
        Comments = cs
            .Where(c1 => c1.date >= DateTime.Now)
            .Count(),
    } by p.id;

你想要这样的东西:

var query =
    from p in POSTS
    join c in COMMENTS on p.id equals c.post_id into cs
    group new
    {
        Post = p,
        Comments = cs
            .Where(c1 => c1.date >= DateTime.Now)
            .Count(),
    } by p.id;

你能解释一下这个问题吗?我不知道这是如何实现左连接的=/@gogogom3关键部分是将
连接到cs
。如果不考虑这一点,则查询将是一个完全联接,但通过
中,它将生成一系列值,
cs
变量,这些值是与每个帖子关联的所有相关注释(零或更多)。这有帮助吗?你能解释一下这个问题吗?我不知道这是如何实现左连接的=/@gogogom3关键部分是将
连接到cs
。如果不考虑这一点,则查询将是一个完全联接,但通过
中,它将生成一系列值,
cs
变量,这些值是与每个帖子关联的所有相关注释(零或更多)。这有用吗?