Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq如何计算行数?_C#_Linq - Fatal编程技术网

C# Linq如何计算行数?

C# Linq如何计算行数?,c#,linq,C#,Linq,我正在通过LINQPAD探索一个非常混乱的SQL数据库,我想得到至少有一列是string类型的所有表的列表。 此外,我想计算上述每列的不同值的计数 我试着把一些东西混在一起,但我的LINQ生锈了,不管怎样,我主要用它来处理LINQ对象 foreach(var table in Mapping.GetTables()) { ( from dm in table.RowType.DataMembers where dm.Type == typeof(string) select new { dm.

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

我试着把一些东西混在一起,但我的LINQ生锈了,不管怎样,我主要用它来处理LINQ对象

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 } 
)
}

嗯,我认为你走得很对。。。以下内容似乎有效(尽管在我测试的数据库上速度非常慢):

来自Mapping.GetTables()中的表
来自table.RowType.DataMembers中的成员
其中member.Type==typeof(字符串)
let count=ExecuteQuery(String.Format(
“从{1}中选择计数(不同的{0}”),
成员姓名:,
table.TableName().FirstOrDefault()
选择新{table.TableName,member.Name,count}

compute the count of distinct value for each column是什么意思?@dav\u我想您有两个字符串列,每列100行。第一列只有两个可能的OUTCOM“是”或“否”-因此有两个不同的值。第二列包含随机文本-因此将有100个不同的值。看起来不错!我的同事现在轰炸了服务器,要得到反馈需要一段时间。。。我有点惊讶,似乎没有干净的方法在linq中进行计数……更重要的是,LINQtoSQL没有(据我所知)能够从动态选择的表中选择数据。LINQ本身并不是罪魁祸首。好吧,这令人失望——我正在对数百个表进行探索性的工作,动态选择会很好。。
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 }