[C#]计数与左的联接 c# linq 中每个列

标签: Linq SQLServer C#
发布时间: 2017/2/27 6:05:32
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

此查询使用 linq c#

SELECT count(tp.column1), count(tf.column2) FROM table1 tp
left join table2 tf on tf.column1= tp.column2

预期的结果︰

column1 column2
39685   12

我有以下代码︰

var query = (from t in  table1
            from t2 in  table2.Where (t2=> t2.column2 == t1.column1).DefaultIfEmpty()
            select new {
                x =  t1.column1,
                b = t2.column2
            });

如何计算那些像 sql 中的列?

解决方法 1:

你需要思考它有一组集合来处理,以便您 count () 评估作为 SQL 的一部分,而不是调用一个往返骗你 LINQ 提供程序本身。你可以"分组"的值都为一体的大型group。

var query = 
    from t in table1
    let t2 = table2.Where (t2=> t2.column1 == t2.column2)
    group new{t, t2} by 0 into g
    select new{
        column1 = g.Count()
        column2 = g.SelectMany(e => e.t2).Count()
    }
官方微信
官方QQ群
31647020