Linq如何计算行数?

时间:2015-02-17 09:03:30

标签: c# linq

我正在通过LINQPAD探索一个非常混乱的SQL数据库,我希望获得所有表的列表,其中至少有一列是string类型。 此外,我想计算上面提到的每列的不同值的计数。

我试图混淆一些东西,但我的LINQ生锈了,无论如何我主要用它来LINQ to Objects ......

foreach(var table in Mapping.GetTables())
{
(
from dm in table.RowType.DataMembers 
where dm.Type == typeof(string)
select new { dm.Name , dm.DbType , dm.Type , dm.MappedName, dm.IsPrimaryKey } 
)
}

1 个答案:

答案 0 :(得分:1)

嗯,我认为你几乎走在正确的轨道上...以下似乎有效(虽然在我测试的数据库上速度很慢):

from table in Mapping.GetTables()
from member in table.RowType.DataMembers
where member.Type == typeof(string)
let count = ExecuteQuery<int>(String.Format(
                "SELECT COUNT(DISTINCT {0}) FROM {1}",
                member.Name,
                table.TableName)).FirstOrDefault()
select new { table.TableName, member.Name, count }