是否可以编写一个linq-to-sql语句,该语句将返回使用UNION ALL放入单个数据集的两个不同COUNT?
我知道这在语法上是错误的,但这就是我要做的事情:
(from t1 in TableOne select t1).Count().Union(
(from t2 in TableTwo select t2).Count()
)
这是我想要生成的sql:
select count(*) from TableOne
union all
select count(*) from TableTwo
我意识到Count()返回一个int并且没有一个Union方法,这就是我的问题。是否可以编写Linq-to-Sql来实现我的目标?
答案 0 :(得分:2)
您可以手动将两个计数放入列表中,如下所示:
var counts = new List<int>() { db.TableOne.Count(), db.TableTwo.Count() };
更一般地说,如果结果集是集合而不是单个值,那么LINQ中的UNION ALL
等效项将是Enumerable.Concat
- 您希望将结果连接在一起。