c# - Linq 如何计算行数?

标签 c# linq

我正在通过 LINQPAD 探索一个非常困惑的 SQL 数据库,我想获得所有表的列表,其中至少有一列是字符串类型。 此外,我想计算上述每一列的不同值的数量。

我曾尝试将某些东西混在一起,但我的 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 } 
)
}

最佳答案

好吧,我认为你在正确的轨道上……以下似乎有效(尽管在我正在测试的数据库上速度很慢):

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 }

关于c# - Linq 如何计算行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28558137/

相关文章:

c# - 如何等待异步任务

c# - 如何使用 json.net 构建用于序列化的对象层次结构?

c# - 如何对列表列表进行排序?

c# - SharpZipLib 无法使用 StreamWriter 将文本写入新创建的 csv 文件

c# - 从 MonoTouch 中引用的 DLL 获取执行程序集名称?

c# - 从 C# 调用 ARM 模板

C#。如何完全填充 ListView?所有项目和所有子项目

c# - 更好的 Linq 查询,用于过滤没有子项的父列表

c# - 此 LINQ JOIN 是否存在某种语法错误?

c# ToDictionary with ContainsKey 检查